summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLvov Maxim <usrleon@gmail.com>2011-07-26 09:50:05 +0400
committerLvov Maxim <usrleon@gmail.com>2011-07-26 09:50:05 +0400
commit01409c0553eaa80c6f31ddc56e9a22054175fa0e (patch)
tree9b7d79d81da5fb34074daf5e58eb90f50ba35c20
parent88ee72fbb50b5f7ead636ef65933489b0e099c2b (diff)
parent83033f69e19832dc50fccf5b833189f0c4e8de63 (diff)
downloadnova-01409c0553eaa80c6f31ddc56e9a22054175fa0e.tar.gz
nova-01409c0553eaa80c6f31ddc56e9a22054175fa0e.tar.xz
nova-01409c0553eaa80c6f31ddc56e9a22054175fa0e.zip
merge with trunk, resolve conflicts
-rw-r--r--.bzrignore3
-rw-r--r--Authors1
-rw-r--r--nova/api/ec2/cloud.py88
-rw-r--r--nova/api/openstack/__init__.py10
-rw-r--r--nova/api/openstack/common.py25
-rw-r--r--nova/api/openstack/create_instance_helper.py68
-rw-r--r--nova/api/openstack/extensions.py51
-rw-r--r--nova/api/openstack/faults.py17
-rw-r--r--nova/api/openstack/image_metadata.py53
-rw-r--r--nova/api/openstack/ips.py56
-rw-r--r--nova/api/openstack/wsgi.py43
-rw-r--r--nova/compute/api.py6
-rw-r--r--nova/network/manager.py2
-rw-r--r--nova/tests/api/openstack/test_common.py18
-rw-r--r--nova/tests/api/openstack/test_extensions.py197
-rw-r--r--nova/tests/api/openstack/test_faults.py107
-rw-r--r--nova/tests/api/openstack/test_image_metadata.py184
-rw-r--r--nova/tests/api/openstack/test_images.py2
-rw-r--r--nova/tests/api/openstack/test_servers.py71
-rw-r--r--nova/tests/api/openstack/test_wsgi.py7
-rw-r--r--nova/tests/test_cloud.py66
-rw-r--r--nova/virt/libvirt.xml.template6
-rw-r--r--nova/virt/libvirt/connection.py24
-rw-r--r--nova/virt/vmwareapi/network_utils.py28
-rw-r--r--nova/virt/vmwareapi/vm_util.py32
-rw-r--r--nova/virt/vmwareapi/vmops.py15
-rw-r--r--nova/volume/api.py2
-rw-r--r--po/ast.po4
-rw-r--r--po/cs.po4
-rw-r--r--po/da.po4
-rw-r--r--po/de.po49
-rw-r--r--po/en_AU.po2848
-rw-r--r--po/en_GB.po2873
-rw-r--r--po/es.po139
-rw-r--r--po/fr.po2992
-rw-r--r--po/it.po4
-rw-r--r--po/ja.po482
-rw-r--r--po/pt_BR.po4
-rw-r--r--po/ru.po22
-rw-r--r--po/tl.po2855
-rw-r--r--po/uk.po4
-rw-r--r--po/zh_CN.po27
-rw-r--r--po/zh_TW.po2848
-rwxr-xr-xrun_tests.sh18
-rw-r--r--tools/esx/guest_tool.py55
45 files changed, 15903 insertions, 511 deletions
diff --git a/.bzrignore b/.bzrignore
index 351b2bef7..91277d100 100644
--- a/.bzrignore
+++ b/.bzrignore
@@ -15,4 +15,5 @@ run_tests.log
tests.sqlite
nova/tests/instance-*
tags
-
+.coverage
+covhtml
diff --git a/Authors b/Authors
index f3129c26e..120201725 100644
--- a/Authors
+++ b/Authors
@@ -8,6 +8,7 @@ Anne Gentle <anne@openstack.org>
Anthony Young <sleepsonthefloor@gmail.com>
Antony Messerli <ant@openstack.org>
Armando Migliaccio <Armando.Migliaccio@eu.citrix.com>
+Arvind Somya <asomya@cisco.com>
Bilal Akhtar <bilalakhtar@ubuntu.com>
Brian Lamar <brian.lamar@rackspace.com>
Brian Schott <bschott@isi.edu>
diff --git a/nova/api/ec2/cloud.py b/nova/api/ec2/cloud.py
index 16ca1ed2a..10720a804 100644
--- a/nova/api/ec2/cloud.py
+++ b/nova/api/ec2/cloud.py
@@ -530,7 +530,52 @@ class CloudController(object):
g['ipPermissions'] += [r]
return g
- def _revoke_rule_args_to_dict(self, context, to_port=None, from_port=None,
+ def _rule_args_to_dict(self, context, kwargs):
+ rules = []
+ if not 'groups' in kwargs and not 'ip_ranges' in kwargs:
+ rule = self._rule_dict_last_step(context, **kwargs)
+ if rule:
+ rules.append(rule)
+ return rules
+ if 'ip_ranges' in kwargs:
+ rules = self._cidr_args_split(kwargs)
+ finalset = []
+ for rule in rules:
+ if 'groups' in rule:
+ groups_values = self._groups_args_split(rule)
+ for groups_value in groups_values:
+ finalset.append(groups_value)
+ else:
+ if rule:
+ finalset.append(rule)
+ return finalset
+
+ def _cidr_args_split(self, kwargs):
+ cidr_args_split = []
+ cidrs = kwargs['ip_ranges']
+ for key, cidr in cidrs.iteritems():
+ mykwargs = kwargs.copy()
+ del mykwargs['ip_ranges']
+ mykwargs['cidr_ip'] = cidr['cidr_ip']
+ cidr_args_split.append(mykwargs)
+ return cidr_args_split
+
+ def _groups_args_split(self, kwargs):
+ groups_args_split = []
+ groups = kwargs['groups']
+ for key, group in groups.iteritems():
+ mykwargs = kwargs.copy()
+ del mykwargs['groups']
+ if 'group_name' in group:
+ mykwargs['source_security_group_name'] = group['group_name']
+ if 'user_id' in group:
+ mykwargs['source_security_group_owner_id'] = group['user_id']
+ if 'group_id' in group:
+ mykwargs['source_security_group_id'] = group['group_id']
+ groups_args_split.append(mykwargs)
+ return groups_args_split
+
+ def _rule_dict_last_step(self, context, to_port=None, from_port=None,
ip_protocol=None, cidr_ip=None, user_id=None,
source_security_group_name=None,
source_security_group_owner_id=None):
@@ -615,7 +660,7 @@ class CloudController(object):
msg = "Revoke security group ingress %s"
LOG.audit(_(msg), security_group['name'], context=context)
- criteria = self._revoke_rule_args_to_dict(context, **kwargs)
+ criteria = self._rule_args_to_dict(context, kwargs)[0]
if criteria is None:
raise exception.ApiError(_("Not enough parameters to build a "
"valid rule."))
@@ -656,21 +701,34 @@ class CloudController(object):
msg = "Authorize security group ingress %s"
LOG.audit(_(msg), security_group['name'], context=context)
- values = self._revoke_rule_args_to_dict(context, **kwargs)
- if values is None:
- raise exception.ApiError(_("Not enough parameters to build a "
- "valid rule."))
- values['parent_group_id'] = security_group.id
-
- if self._security_group_rule_exists(security_group, values):
- raise exception.ApiError(_('This rule already exists in group %s')
- % group_name)
-
- security_group_rule = db.security_group_rule_create(context, values)
+ prevalues = []
+ try:
+ prevalues = kwargs['ip_permissions']
+ except KeyError:
+ prevalues.append(kwargs)
+ postvalues = []
+ for values in prevalues:
+ rulesvalues = self._rule_args_to_dict(context, values)
+ if not rulesvalues:
+ err = "%s Not enough parameters to build a valid rule"
+ raise exception.ApiError(_(err % rulesvalues))
+ for values_for_rule in rulesvalues:
+ values_for_rule['parent_group_id'] = security_group.id
+ if self._security_group_rule_exists(security_group,
+ values_for_rule):
+ err = '%s - This rule already exists in group'
+ raise exception.ApiError(_(err) % values_for_rule)
+ postvalues.append(values_for_rule)
+
+ for values_for_rule in postvalues:
+ security_group_rule = db.security_group_rule_create(context,
+ values_for_rule)
self.compute_api.trigger_security_group_rules_refresh(context,
- security_group_id=security_group['id'])
+ security_group_id=security_group['id'])
+ group = db.security_group_get_by_name(context, context.project_id,
+ security_group['name'])
return True
def _get_source_project_id(self, context, source_security_group_owner_id):
@@ -1147,7 +1205,7 @@ class CloudController(object):
def rescue_instance(self, context, instance_id, **kwargs):
"""This is an extension to the normal ec2_api"""
- self._do_instance(self.compute_api.rescue, contect, instnace_id)
+ self._do_instance(self.compute_api.rescue, context, instance_id)
return True
def unrescue_instance(self, context, instance_id, **kwargs):
diff --git a/nova/api/openstack/__init__.py b/nova/api/openstack/__init__.py
index e87d7c754..868b98a31 100644
--- a/nova/api/openstack/__init__.py
+++ b/nova/api/openstack/__init__.py
@@ -164,11 +164,17 @@ class APIRouterV11(APIRouter):
def _setup_routes(self, mapper):
super(APIRouterV11, self)._setup_routes(mapper, '1.1')
- mapper.resource("image_meta", "meta",
- controller=image_metadata.create_resource(),
+ image_metadata_controller = image_metadata.create_resource()
+ mapper.resource("image_meta", "metadata",
+ controller=image_metadata_controller,
parent_resource=dict(member_name='image',
collection_name='images'))
+ mapper.connect("metadata", "/images/{image_id}/metadata",
+ controller=image_metadata_controller,
+ action='update_all',
+ conditions={"method": ['PUT']})
+
mapper.resource("server_meta", "meta",
controller=server_metadata.create_resource(),
parent_resource=dict(member_name='server',
diff --git a/nova/api/openstack/common.py b/nova/api/openstack/common.py
index 57031ebf1..bd14a1389 100644
--- a/nova/api/openstack/common.py
+++ b/nova/api/openstack/common.py
@@ -167,3 +167,28 @@ def remove_version_from_href(href):
msg = _('href does not contain version')
raise ValueError(msg)
return new_href
+
+
+def get_version_from_href(href):
+ """Returns the api version in the href.
+
+ Returns the api version in the href.
+ If no version is found, 1.0 is returned
+
+ Given: 'http://www.nova.com/123'
+ Returns: '1.0'
+
+ Given: 'http://www.nova.com/v1.1'
+ Returns: '1.1'
+
+ """
+ try:
+ #finds the first instance that matches /v#.#/
+ version = re.findall(r'[/][v][0-9]+\.[0-9]+[/]', href)
+ #if no version was found, try finding /v#.# at the end of the string
+ if not version:
+ version = re.findall(r'[/][v][0-9]+\.[0-9]+$', href)
+ version = re.findall(r'[0-9]+\.[0-9]', version[0])[0]
+ except IndexError:
+ version = '1.0'
+ return version
diff --git a/nova/api/openstack/create_instance_helper.py b/nova/api/openstack/create_instance_helper.py
index 7249f1261..f8317565e 100644
--- a/nova/api/openstack/create_instance_helper.py
+++ b/nova/api/openstack/create_instance_helper.py
@@ -71,9 +71,12 @@ class CreateInstanceHelper(object):
if not body:
raise exc.HTTPUnprocessableEntity()
- context = req.environ['nova.context']
+ if not 'server' in body:
+ raise exc.HTTPUnprocessableEntity()
- password = self.controller._get_server_admin_password(body['server'])
+ server_dict = body['server']
+ context = req.environ['nova.context']
+ password = self.controller._get_server_admin_password(server_dict)
key_name = None
key_data = None
@@ -95,7 +98,7 @@ class CreateInstanceHelper(object):
locals())
raise exc.HTTPBadRequest(explanation=msg)
- personality = body['server'].get('personality')
+ personality = server_dict.get('personality')
injected_files = []
if personality:
@@ -107,18 +110,18 @@ class CreateInstanceHelper(object):
msg = _("Invalid flavorRef provided.")
raise exc.HTTPBadRequest(explanation=msg)
- if not 'name' in body['server']:
+ if not 'name' in server_dict:
msg = _("Server name is not defined")
raise exc.HTTPBadRequest(explanation=msg)
- zone_blob = body['server'].get('blob')
- name = body['server']['name']
+ zone_blob = server_dict.get('blob')
+ name = server_dict['name']
self._validate_server_name(name)
name = name.strip()
- reservation_id = body['server'].get('reservation_id')
- min_count = body['server'].get('min_count')
- max_count = body['server'].get('max_count')
+ reservation_id = server_dict.get('reservation_id')
+ min_count = server_dict.get('min_count')
+ max_count = server_dict.get('max_count')
# min_count and max_count are optional. If they exist, they come
# in as strings. We want to default 'min_count' to 1, and default
# 'max_count' to be 'min_count'.
@@ -145,7 +148,7 @@ class CreateInstanceHelper(object):
display_description=name,
key_name=key_name,
key_data=key_data,
- metadata=body['server'].get('metadata', {}),
+ metadata=server_dict.get('metadata', {}),
injected_files=injected_files,
admin_password=password,
zone_blob=zone_blob,
@@ -282,7 +285,7 @@ class CreateInstanceHelper(object):
return password
-class ServerXMLDeserializer(wsgi.XMLDeserializer):
+class ServerXMLDeserializer(wsgi.MetadataXMLDeserializer):
"""
Deserializer to handle xml-formatted server create requests.
@@ -299,11 +302,12 @@ class ServerXMLDeserializer(wsgi.XMLDeserializer):
def _extract_server(self, node):
"""Marshal the server attribute of a parsed request"""
server = {}
- server_node = self._find_first_child_named(node, 'server')
+ server_node = self.find_first_child_named(node, 'server')
for attr in ["name", "imageId", "flavorId", "imageRef", "flavorRef"]:
if server_node.getAttribute(attr):
server[attr] = server_node.getAttribute(attr)
- metadata = self._extract_metadata(server_node)
+ metadata_node = self.find_first_child_named(server_node, "metadata")
+ metadata = self.extract_metadata(metadata_node)
if metadata is not None:
server["metadata"] = metadata
personality = self._extract_personality(server_node)
@@ -311,49 +315,17 @@ class ServerXMLDeserializer(wsgi.XMLDeserializer):
server["personality"] = personality
return server
- def _extract_metadata(self, server_node):
- """Marshal the metadata attribute of a parsed request"""
- metadata_node = self._find_first_child_named(server_node, "metadata")
- if metadata_node is None:
- return None
- metadata = {}
- for meta_node in self._find_children_named(metadata_node, "meta"):
- key = meta_node.getAttribute("key")
- metadata[key] = self._extract_text(meta_node)
- return metadata
-
def _extract_personality(self, server_node):
"""Marshal the personality attribute of a parsed request"""
personality_node = \
- self._find_first_child_named(server_node, "personality")
+ self.find_first_child_named(server_node, "personality")
if personality_node is None:
return None
personality = []
- for file_node in self._find_children_named(personality_node, "file"):
+ for file_node in self.find_children_named(personality_node, "file"):
item = {}
if file_node.hasAttribute("path"):
item["path"] = file_node.getAttribute("path")
- item["contents"] = self._extract_text(file_node)
+ item["contents"] = self.extract_text(file_node)
personality.append(item)
return personality
-
- def _find_first_child_named(self, parent, name):
- """Search a nodes children for the first child with a given name"""
- for node in parent.childNodes:
- if node.nodeName == name:
- return node
- return None
-
- def _find_children_named(self, parent, name):
- """Return all of a nodes children who have the given name"""
- for node in parent.childNodes:
- if node.nodeName == name:
- yield node
-
- def _extract_text(self, node):
- """Get the text field contained by the given node"""
- if len(node.childNodes) == 1:
- child = node.childNodes[0]
- if child.nodeType == child.TEXT_NODE:
- return child.nodeValue
- return ""
diff --git a/nova/api/openstack/extensions.py b/nova/api/openstack/extensions.py
index da06ecd15..cc889703e 100644
--- a/nova/api/openstack/extensions.py
+++ b/nova/api/openstack/extensions.py
@@ -23,6 +23,7 @@ import sys
import routes
import webob.dec
import webob.exc
+from xml.etree import ElementTree
from nova import exception
from nova import flags
@@ -194,7 +195,7 @@ class ExtensionsResource(wsgi.Resource):
def show(self, req, id):
# NOTE(dprince): the extensions alias is used as the 'id' for show
ext = self.extension_manager.extensions[id]
- return self._translate(ext)
+ return dict(extension=self._translate(ext))
def delete(self, req, id):
raise faults.Fault(webob.exc.HTTPNotFound())
@@ -258,15 +259,18 @@ class ExtensionMiddleware(base_wsgi.Middleware):
mapper = routes.Mapper()
+ serializer = wsgi.ResponseSerializer(
+ {'application/xml': ExtensionsXMLSerializer()})
# extended resources
for resource in ext_mgr.get_resources():
LOG.debug(_('Extended resource: %s'),
resource.collection)
mapper.resource(resource.collection, resource.collection,
- controller=wsgi.Resource(resource.controller),
- collection=resource.collection_actions,
- member=resource.member_actions,
- parent_resource=resource.parent)
+ controller=wsgi.Resource(
+ resource.controller, serializer=serializer),
+ collection=resource.collection_actions,
+ member=resource.member_actions,
+ parent_resource=resource.parent)
# extended actions
action_resources = self._action_ext_resources(application, ext_mgr,
@@ -462,3 +466,40 @@ class ResourceExtension(object):
self.parent = parent
self.collection_actions = collection_actions
self.member_actions = member_actions
+
+
+class ExtensionsXMLSerializer(wsgi.XMLDictSerializer):
+
+ def show(self, ext_dict):
+ ext = self._create_ext_elem(ext_dict['extension'])
+ return self._to_xml(ext)
+
+ def index(self, exts_dict):
+ exts = ElementTree.Element('extensions')
+ for ext_dict in exts_dict['extensions']:
+ exts.append(self._create_ext_elem(ext_dict))
+ return self._to_xml(exts)
+
+ def _create_ext_elem(self, ext_dict):
+ """Create an extension xml element from a dict."""
+ ext_elem = ElementTree.Element('extension')
+ ext_elem.set('name', ext_dict['name'])
+ ext_elem.set('namespace', ext_dict['namespace'])
+ ext_elem.set('alias', ext_dict['alias'])
+ ext_elem.set('updated', ext_dict['updated'])
+ desc = ElementTree.Element('description')
+ desc.text = ext_dict['description']
+ ext_elem.append(desc)
+ for link in ext_dict.get('links', []):
+ elem = ElementTree.Element('atom:link')
+ elem.set('rel', link['rel'])
+ elem.set('href', link['href'])
+ elem.set('type', link['type'])
+ ext_elem.append(elem)
+ return ext_elem
+
+ def _to_xml(self, root):
+ """Convert the xml tree object to an xml string."""
+ root.set('xmlns', wsgi.XMLNS_V11)
+ root.set('xmlns:atom', wsgi.XMLNS_ATOM)
+ return ElementTree.tostring(root, encoding='UTF-8')
diff --git a/nova/api/openstack/faults.py b/nova/api/openstack/faults.py
index 24cde69e4..1ab45d4f1 100644
--- a/nova/api/openstack/faults.py
+++ b/nova/api/openstack/faults.py
@@ -19,6 +19,7 @@
import webob.dec
import webob.exc
+from nova.api.openstack import common
from nova.api.openstack import wsgi
@@ -61,9 +62,13 @@ class Fault(webob.exc.HTTPException):
content_type = req.best_match_content_type()
+ xml_serializer = {
+ '1.0': wsgi.XMLDictSerializer(metadata, wsgi.XMLNS_V10),
+ '1.1': wsgi.XMLDictSerializer(metadata, wsgi.XMLNS_V11),
+ }[common.get_version_from_href(req.url)]
+
serializer = {
- 'application/xml': wsgi.XMLDictSerializer(metadata=metadata,
- xmlns=wsgi.XMLNS_V10),
+ 'application/xml': xml_serializer,
'application/json': wsgi.JSONDictSerializer(),
}[content_type]
@@ -100,9 +105,13 @@ class OverLimitFault(webob.exc.HTTPException):
content_type = request.best_match_content_type()
metadata = {"attributes": {"overLimitFault": "code"}}
+ xml_serializer = {
+ '1.0': wsgi.XMLDictSerializer(metadata, wsgi.XMLNS_V10),
+ '1.1': wsgi.XMLDictSerializer(metadata, wsgi.XMLNS_V11),
+ }[common.get_version_from_href(request.url)]
+
serializer = {
- 'application/xml': wsgi.XMLDictSerializer(metadata=metadata,
- xmlns=wsgi.XMLNS_V10),
+ 'application/xml': xml_serializer,
'application/json': wsgi.JSONDictSerializer(),
}[content_type]
diff --git a/nova/api/openstack/image_metadata.py b/nova/api/openstack/image_metadata.py
index c0fc8c09b..ee181c924 100644
--- a/nova/api/openstack/image_metadata.py
+++ b/nova/api/openstack/image_metadata.py
@@ -96,8 +96,16 @@ class Controller(object):
self._check_quota_limit(context, metadata)
img['properties'] = metadata
self.image_service.update(context, image_id, img, None)
+ return dict(meta=meta)
- return req.body
+ def update_all(self, req, image_id, body):
+ context = req.environ['nova.context']
+ img = self.image_service.show(context, image_id)
+ metadata = body.get('metadata', {})
+ self._check_quota_limit(context, metadata)
+ img['properties'] = metadata
+ self.image_service.update(context, image_id, img, None)
+ return dict(metadata=metadata)
def delete(self, req, image_id, id):
context = req.environ['nova.context']
@@ -110,6 +118,32 @@ class Controller(object):
self.image_service.update(context, image_id, img, None)
+class ImageMetadataXMLDeserializer(wsgi.MetadataXMLDeserializer):
+
+ def _extract_metadata_container(self, datastring):
+ dom = minidom.parseString(datastring)
+ metadata_node = self.find_first_child_named(dom, "metadata")
+ metadata = self.extract_metadata(metadata_node)
+ return {'body': {'metadata': metadata}}
+
+ def create(self, datastring):
+ return self._extract_metadata_container(datastring)
+
+ def update_all(self, datastring):
+ return self._extract_metadata_container(datastring)
+
+ def update(self, datastring):
+ dom = minidom.parseString(datastring)
+ metadata_item = self.extract_metadata(dom)
+ return {'body': {'meta': metadata_item}}
+
+
+class HeadersSerializer(wsgi.ResponseHeadersSerializer):
+
+ def delete(self, response, data):
+ response.status_int = 204
+
+
class ImageMetadataXMLSerializer(wsgi.XMLDictSerializer):
def __init__(self, xmlns=wsgi.XMLNS_V11):
super(ImageMetadataXMLSerializer, self).__init__(xmlns=xmlns)
@@ -143,6 +177,9 @@ class ImageMetadataXMLSerializer(wsgi.XMLDictSerializer):
def create(self, metadata_dict):
return self._meta_list_to_xml_string(metadata_dict)
+ def update_all(self, metadata_dict):
+ return self._meta_list_to_xml_string(metadata_dict)
+
def _meta_item_to_xml_string(self, meta_item_dict):
xml_doc = minidom.Document()
item_key, item_value = meta_item_dict.items()[0]
@@ -157,11 +194,21 @@ class ImageMetadataXMLSerializer(wsgi.XMLDictSerializer):
def update(self, meta_item_dict):
return self._meta_item_to_xml_string(meta_item_dict['meta'])
+ def default(self, *args, **kwargs):
+ return ''
+
def create_resource():
+ headers_serializer = HeadersSerializer()
+
+ body_deserializers = {
+ 'application/xml': ImageMetadataXMLDeserializer(),
+ }
+
body_serializers = {
'application/xml': ImageMetadataXMLSerializer(),
}
- serializer = wsgi.ResponseSerializer(body_serializers)
+ serializer = wsgi.ResponseSerializer(body_serializers, headers_serializer)
+ deserializer = wsgi.RequestDeserializer(body_deserializers)
- return wsgi.Resource(Controller(), serializer=serializer)
+ return wsgi.Resource(Controller(), deserializer, serializer)
diff --git a/nova/api/openstack/ips.py b/nova/api/openstack/ips.py
index 2996b032d..a74fae487 100644
--- a/nova/api/openstack/ips.py
+++ b/nova/api/openstack/ips.py
@@ -16,6 +16,7 @@
# under the License.
import time
+from xml.dom import minidom
from webob import exc
@@ -100,17 +101,51 @@ class ControllerV11(Controller):
return nova.api.openstack.views.addresses.ViewBuilderV11()
+class IPXMLSerializer(wsgi.XMLDictSerializer):
+ def __init__(self, xmlns=wsgi.XMLNS_V11):
+ super(IPXMLSerializer, self).__init__(xmlns=xmlns)
+
+ def _ip_to_xml(self, xml_doc, ip_dict):
+ ip_node = xml_doc.createElement('ip')
+ ip_node.setAttribute('addr', ip_dict['addr'])
+ ip_node.setAttribute('version', str(ip_dict['version']))
+ return ip_node
+
+ def _network_to_xml(self, xml_doc, network_id, ip_dicts):
+ network_node = xml_doc.createElement('network')
+ network_node.setAttribute('id', network_id)
+
+ for ip_dict in ip_dicts:
+ ip_node = self._ip_to_xml(xml_doc, ip_dict)
+ network_node.appendChild(ip_node)
+
+ return network_node
+
+ def networks_to_xml(self, xml_doc, networks_container):
+ addresses_node = xml_doc.createElement('addresses')
+ for (network_id, ip_dicts) in networks_container.items():
+ network_node = self._network_to_xml(xml_doc, network_id, ip_dicts)
+ addresses_node.appendChild(network_node)
+ return addresses_node
+
+ def show(self, network_container):
+ (network_id, ip_dicts) = network_container.items()[0]
+ xml_doc = minidom.Document()
+ node = self._network_to_xml(xml_doc, network_id, ip_dicts)
+ return self.to_xml_string(node, False)
+
+ def index(self, addresses_container):
+ xml_doc = minidom.Document()
+ node = self.networks_to_xml(xml_doc, addresses_container['addresses'])
+ return self.to_xml_string(node, False)
+
+
def create_resource(version):
controller = {
'1.0': ControllerV10,
'1.1': ControllerV11,
}[version]()
- xmlns = {
- '1.0': wsgi.XMLNS_V10,
- '1.1': wsgi.XMLNS_V11,
- }[version]
-
metadata = {
'list_collections': {
'public': {'item_name': 'ip', 'item_key': 'addr'},
@@ -118,10 +153,11 @@ def create_resource(version):
},
}
- body_serializers = {
- 'application/xml': wsgi.XMLDictSerializer(metadata=metadata,
- xmlns=xmlns),
- }
- serializer = wsgi.ResponseSerializer(body_serializers)
+ xml_serializer = {
+ '1.0': wsgi.XMLDictSerializer(metadata=metadata, xmlns=wsgi.XMLNS_V11),
+ '1.1': IPXMLSerializer(),
+ }[version]
+
+ serializer = wsgi.ResponseSerializer({'application/xml': xml_serializer})
return wsgi.Resource(controller, serializer=serializer)
diff --git a/nova/api/openstack/wsgi.py b/nova/api/openstack/wsgi.py
index 1e5a5143d..a28443d12 100644
--- a/nova/api/openstack/wsgi.py
+++ b/nova/api/openstack/wsgi.py
@@ -13,6 +13,7 @@ from nova import wsgi
XMLNS_V10 = 'http://docs.rackspacecloud.com/servers/api/v1.0'
XMLNS_V11 = 'http://docs.openstack.org/compute/api/v1.1'
+XMLNS_ATOM = 'http://www.w3.org/2005/Atom'
LOG = logging.getLogger('nova.api.openstack.wsgi')
@@ -135,10 +136,44 @@ class XMLDeserializer(TextDeserializer):
listnames)
return result
+ def find_first_child_named(self, parent, name):
+ """Search a nodes children for the first child with a given name"""
+ for node in parent.childNodes:
+ if node.nodeName == name:
+ return node
+ return None
+
+ def find_children_named(self, parent, name):
+ """Return all of a nodes children who have the given name"""
+ for node in parent.childNodes:
+ if node.nodeName == name:
+ yield node
+
+ def extract_text(self, node):
+ """Get the text field contained by the given node"""
+ if len(node.childNodes) == 1:
+ child = node.childNodes[0]
+ if child.nodeType == child.TEXT_NODE:
+ return child.nodeValue
+ return ""
+
def default(self, datastring):
return {'body': self._from_xml(datastring)}
+class MetadataXMLDeserializer(XMLDeserializer):
+
+ def extract_metadata(self, metadata_node):
+ """Marshal the metadata attribute of a parsed request"""
+ if metadata_node is None:
+ return None
+ metadata = {}
+ for meta_node in self.find_children_named(metadata_node, "meta"):
+ key = meta_node.getAttribute("key")
+ metadata[key] = self.extract_text(meta_node)
+ return metadata
+
+
class RequestHeadersDeserializer(ActionDispatcher):
"""Default request headers deserializer"""
@@ -396,8 +431,9 @@ class ResponseSerializer(object):
def serialize_body(self, response, data, content_type, action):
response.headers['Content-Type'] = content_type
- serializer = self.get_body_serializer(content_type)
- response.body = serializer.serialize(data, action)
+ if data is not None:
+ serializer = self.get_body_serializer(content_type)
+ response.body = serializer.serialize(data, action)
def get_body_serializer(self, content_type):
try:
@@ -443,7 +479,7 @@ class Resource(wsgi.Application):
action, args, accept = self.deserializer.deserialize(request)
except exception.InvalidContentType:
msg = _("Unsupported Content-Type")
- return webob.exc.HTTPBadRequest(explanation=msg)
+ return faults.Fault(webob.exc.HTTPBadRequest(explanation=msg))
except exception.MalformedRequestBody:
msg = _("Malformed request body")
return faults.Fault(webob.exc.HTTPBadRequest(explanation=msg))
@@ -454,7 +490,6 @@ class Resource(wsgi.Application):
LOG.info(_("HTTP exception thrown: %s"), unicode(ex))
action_result = faults.Fault(ex)
- #TODO(bcwaldon): find a more elegant way to pass through non-dict types
if type(action_result) is dict or action_result is None:
response = self.serializer.serialize(action_result,
accept,
diff --git a/nova/compute/api.py b/nova/compute/api.py
index 9994e5724..c49c0d95c 100644
--- a/nova/compute/api.py
+++ b/nova/compute/api.py
@@ -127,7 +127,7 @@ class API(base.Base):
quota_metadata = quota.allowed_metadata_items(context, num_metadata)
if quota_metadata < num_metadata:
pid = context.project_id
- msg = _("Quota exceeeded for %(pid)s, tried to set "
+ msg = _("Quota exceeded for %(pid)s, tried to set "
"%(num_metadata)s metadata properties") % locals()
LOG.warn(msg)
raise quota.QuotaError(msg, "MetadataLimitExceeded")
@@ -138,7 +138,7 @@ class API(base.Base):
for k, v in metadata.iteritems():
if len(k) > 255 or len(v) > 255:
pid = context.project_id
- msg = _("Quota exceeeded for %(pid)s, metadata property "
+ msg = _("Quota exceeded for %(pid)s, metadata property "
"key or value too long") % locals()
LOG.warn(msg)
raise quota.QuotaError(msg, "MetadataLimitExceeded")
@@ -165,7 +165,7 @@ class API(base.Base):
instance_type)
if num_instances < min_count:
pid = context.project_id
- LOG.warn(_("Quota exceeeded for %(pid)s,"
+ LOG.warn(_("Quota exceeded for %(pid)s,"
" tried to run %(min_count)s instances") % locals())
if num_instances <= 0:
message = _("Instance quota exceeded. You cannot run any "
diff --git a/nova/network/manager.py b/nova/network/manager.py
index 4f984296c..5c75a9a6d 100644
--- a/nova/network/manager.py
+++ b/nova/network/manager.py
@@ -258,7 +258,7 @@ class FloatingIP(object):
# NOTE(tr3buchet): all networks hosts in zone now use the same pool
LOG.debug("QUOTA: %s" % quota.allowed_floating_ips(context, 1))
if quota.allowed_floating_ips(context, 1) < 1:
- LOG.warn(_('Quota exceeeded for %s, tried to allocate '
+ LOG.warn(_('Quota exceeded for %s, tried to allocate '
'address'),
context.project_id)
raise quota.QuotaError(_('Address quota exceeded. You cannot '
diff --git a/nova/tests/api/openstack/test_common.py b/nova/tests/api/openstack/test_common.py
index 4c4d03995..f09270b34 100644
--- a/nova/tests/api/openstack/test_common.py
+++ b/nova/tests/api/openstack/test_common.py
@@ -247,3 +247,21 @@ class MiscFunctionsTest(test.TestCase):
self.assertRaises(ValueError,
common.get_id_from_href,
fixture)
+
+ def test_get_version_from_href(self):
+ fixture = 'http://www.testsite.com/v1.1/images'
+ expected = '1.1'
+ actual = common.get_version_from_href(fixture)
+ self.assertEqual(actual, expected)
+
+ def test_get_version_from_href_2(self):
+ fixture = 'http://www.testsite.com/v1.1'
+ expected = '1.1'
+ actual = common.get_version_from_href(fixture)
+ self.assertEqual(actual, expected)
+
+ def test_get_version_from_href_default(self):
+ fixture = 'http://www.testsite.com/images'
+ expected = '1.0'
+ actual = common.get_version_from_href(fixture)
+ self.assertEqual(actual, expected)
diff --git a/nova/tests/api/openstack/test_extensions.py b/nova/tests/api/openstack/test_extensions.py
index 697c62e5c..d459c694f 100644
--- a/nova/tests/api/openstack/test_extensions.py
+++ b/nova/tests/api/openstack/test_extensions.py
@@ -16,10 +16,11 @@
# under the License.
import json
+import os.path
import stubout
import unittest
import webob
-import os.path
+from xml.etree import ElementTree
from nova import context
from nova import flags
@@ -30,7 +31,8 @@ from nova.api.openstack import wsgi
from nova.tests.api.openstack import fakes
FLAGS = flags.FLAGS
-
+NS = "{http://docs.openstack.org/compute/api/v1.1}"
+ATOMNS = "{http://www.w3.org/2005/Atom}"
response_body = "Try to say this Mr. Knox, sir..."
@@ -80,20 +82,99 @@ class StubExtensionManager(object):
class ExtensionControllerTest(unittest.TestCase):
- def test_index(self):
+ def setUp(self):
+ FLAGS.osapi_extensions_path = os.path.join(
+ os.path.dirname(__file__), "extensions")
+
+ def test_list_extensions_json(self):
app = openstack.APIRouterV11()
ext_midware = extensions.ExtensionMiddleware(app)
request = webob.Request.blank("/extensions")
response = request.get_response(ext_midware)
self.assertEqual(200, response.status_int)
- def test_get_by_alias(self):
+ # Make sure we have all the extensions.
+ data = json.loads(response.body)
+ names = [x['name'] for x in data['extensions']]
+ names.sort()
+ self.assertEqual(names, ["FlavorExtraSpecs", "Floating_ips",
+ "Fox In Socks", "Hosts", "Multinic", "Volumes"])
+
+ # Make sure that at least Fox in Sox is correct.
+ (fox_ext,) = [
+ x for x in data['extensions'] if x['alias'] == 'FOXNSOX']
+ self.assertEqual(fox_ext, {
+ 'namespace': 'http://www.fox.in.socks/api/ext/pie/v1.0',
+ 'name': 'Fox In Socks',
+ 'updated': '2011-01-22T13:25:27-06:00',
+ 'description': 'The Fox In Socks Extension',
+ 'alias': 'FOXNSOX',
+ 'links': []
+ }
+ )
+
+ def test_get_extension_json(self):
app = openstack.APIRouterV11()
ext_midware = extensions.ExtensionMiddleware(app)
request = webob.Request.blank("/extensions/FOXNSOX")
response = request.get_response(ext_midware)
self.assertEqual(200, response.status_int)
+ data = json.loads(response.body)
+ self.assertEqual(data['extension'], {
+ "namespace": "http://www.fox.in.socks/api/ext/pie/v1.0",
+ "name": "Fox In Socks",
+ "updated": "2011-01-22T13:25:27-06:00",
+ "description": "The Fox In Socks Extension",
+ "alias": "FOXNSOX",
+ "links": []
+ }
+ )
+
+ def test_list_extensions_xml(self):
+ app = openstack.APIRouterV11()
+ ext_midware = extensions.ExtensionMiddleware(app)
+ request = webob.Request.blank("/extensions")
+ request.accept = "application/xml"
+ response = request.get_response(ext_midware)
+ self.assertEqual(200, response.status_int)
+ print response.body
+
+ root = ElementTree.XML(response.body)
+ self.assertEqual(root.tag.split('extensions')[0], NS)
+
+ # Make sure we have all the extensions.
+ exts = root.findall('{0}extension'.format(NS))
+ self.assertEqual(len(exts), 6)
+
+ # Make sure that at least Fox in Sox is correct.
+ (fox_ext,) = [x for x in exts if x.get('alias') == 'FOXNSOX']
+ self.assertEqual(fox_ext.get('name'), 'Fox In Socks')
+ self.assertEqual(fox_ext.get('namespace'),
+ 'http://www.fox.in.socks/api/ext/pie/v1.0')
+ self.assertEqual(fox_ext.get('updated'), '2011-01-22T13:25:27-06:00')
+ self.assertEqual(fox_ext.findtext('{0}description'.format(NS)),
+ 'The Fox In Socks Extension')
+
+ def test_get_extension_xml(self):
+ app = openstack.APIRouterV11()
+ ext_midware = extensions.ExtensionMiddleware(app)
+ request = webob.Request.blank("/extensions/FOXNSOX")
+ request.accept = "application/xml"
+ response = request.get_response(ext_midware)
+ self.assertEqual(200, response.status_int)
+ print response.body
+
+ root = ElementTree.XML(response.body)
+ self.assertEqual(root.tag.split('extension')[0], NS)
+ self.assertEqual(root.get('alias'), 'FOXNSOX')
+ self.assertEqual(root.get('name'), 'Fox In Socks')
+ self.assertEqual(root.get('namespace'),
+ 'http://www.fox.in.socks/api/ext/pie/v1.0')
+ self.assertEqual(root.get('updated'), '2011-01-22T13:25:27-06:00')
+ self.assertEqual(root.findtext('{0}description'.format(NS)),
+ 'The Fox In Socks Extension')
+
class ResourceExtensionTest(unittest.TestCase):
@@ -192,7 +273,7 @@ class ActionExtensionTest(unittest.TestCase):
def test_invalid_action(self):
body = dict(blah=dict(name="test"))
- response = self._send_server_action_request("/asdf/1/action", body)
+ response = self._send_server_action_request("/fdsa/1/action", body)
self.assertEqual(404, response.status_int)
@@ -244,3 +325,109 @@ class RequestExtensionTest(unittest.TestCase):
response_data = json.loads(response.body)
self.assertEqual('newblue', response_data['flavor']['googoose'])
self.assertEqual("Pig Bands!", response_data['big_bands'])
+
+
+class ExtensionsXMLSerializerTest(unittest.TestCase):
+
+ def test_serialize_extenstion(self):
+ serializer = extensions.ExtensionsXMLSerializer()
+ data = {
+ 'extension': {
+ 'name': 'ext1',
+ 'namespace': 'http://docs.rack.com/servers/api/ext/pie/v1.0',
+ 'alias': 'RS-PIE',
+ 'updated': '2011-01-22T13:25:27-06:00',
+ 'description': 'Adds the capability to share an image.',
+ 'links': [
+ {
+ 'rel': 'describedby',
+ 'type': 'application/pdf',
+ 'href': 'http://docs.rack.com/servers/api/ext/cs.pdf'
+ },
+ {
+ 'rel': 'describedby',
+ 'type': 'application/vnd.sun.wadl+xml',
+ 'href': 'http://docs.rack.com/servers/api/ext/cs.wadl'
+ }
+ ]
+ }
+ }
+
+ xml = serializer.serialize(data, 'show')
+ root = ElementTree.XML(xml)
+ ext_dict = data['extension']
+ self.assertEqual(root.findtext('{0}description'.format(NS)),
+ ext_dict['description'])
+
+ for key in ['name', 'namespace', 'alias', 'updated']:
+ self.assertEqual(root.get(key), ext_dict[key])
+
+ link_nodes = root.findall('{0}link'.format(ATOMNS))
+ self.assertEqual(len(link_nodes), 2)
+ for i, link in enumerate(ext_dict['links']):
+ for key, value in link.items():
+ self.assertEqual(link_nodes[i].get(key), value)
+
+ def test_serialize_extensions(self):
+ serializer = extensions.ExtensionsXMLSerializer()
+ data = {
+ "extensions": [
+ {
+ "name": "Public Image Extension",
+ "namespace": "http://foo.com/api/ext/pie/v1.0",
+ "alias": "RS-PIE",
+ "updated": "2011-01-22T13:25:27-06:00",
+ "description": "Adds the capability to share an image.",
+ "links": [
+ {
+ "rel": "describedby",
+ "type": "application/pdf",
+ "href": "http://foo.com/api/ext/cs-pie.pdf"
+ },
+ {
+ "rel": "describedby",
+ "type": "application/vnd.sun.wadl+xml",
+ "href": "http://foo.com/api/ext/cs-pie.wadl"
+ }
+ ]
+ },
+ {
+ "name": "Cloud Block Storage",
+ "namespace": "http://foo.com/api/ext/cbs/v1.0",
+ "alias": "RS-CBS",
+ "updated": "2011-01-12T11:22:33-06:00",
+ "description": "Allows mounting cloud block storage.",
+ "links": [
+ {
+ "rel": "describedby",
+ "type": "application/pdf",
+ "href": "http://foo.com/api/ext/cs-cbs.pdf"
+ },
+ {
+ "rel": "describedby",
+ "type": "application/vnd.sun.wadl+xml",
+ "href": "http://foo.com/api/ext/cs-cbs.wadl"
+ }
+ ]
+ }
+ ]
+ }
+
+ xml = serializer.serialize(data, 'index')
+ print xml
+ root = ElementTree.XML(xml)
+ ext_elems = root.findall('{0}extension'.format(NS))
+ self.assertEqual(len(ext_elems), 2)
+ for i, ext_elem in enumerate(ext_elems):
+ ext_dict = data['extensions'][i]
+ self.assertEqual(ext_elem.findtext('{0}description'.format(NS)),
+ ext_dict['description'])
+
+ for key in ['name', 'namespace', 'alias', 'updated']:
+ self.assertEqual(ext_elem.get(key), ext_dict[key])
+
+ link_nodes = ext_elem.findall('{0}link'.format(ATOMNS))
+ self.assertEqual(len(link_nodes), 2)
+ for i, link in enumerate(ext_dict['links']):
+ for key, value in link.items():
+ self.assertEqual(link_nodes[i].get(key), value)
diff --git a/nova/tests/api/openstack/test_faults.py b/nova/tests/api/openstack/test_faults.py
index 927009e77..6da27540a 100644
--- a/nova/tests/api/openstack/test_faults.py
+++ b/nova/tests/api/openstack/test_faults.py
@@ -16,6 +16,7 @@
# under the License.
import json
+from xml.dom import minidom
import webob
import webob.dec
@@ -24,6 +25,7 @@ import webob.exc
from nova import test
from nova.api.openstack import common
from nova.api.openstack import faults
+from nova.api.openstack import wsgi
class TestFaults(test.TestCase):
@@ -144,3 +146,108 @@ class TestFaults(test.TestCase):
"""Ensure the status_int is set correctly on faults"""
fault = faults.Fault(webob.exc.HTTPBadRequest(explanation='what?'))
self.assertEqual(fault.status_int, 400)
+
+ def test_v10_xml_serializer(self):
+ """Ensure that a v1.0 request responds with a v1.0 xmlns"""
+ request = webob.Request.blank('/',
+ headers={"Accept": "application/xml"})
+
+ fault = faults.Fault(webob.exc.HTTPBadRequest(explanation='scram'))
+ response = request.get_response(fault)
+
+ self.assertTrue(common.XML_NS_V10 in response.body)
+ self.assertEqual(response.content_type, "application/xml")
+ self.assertEqual(response.status_int, 400)
+
+ def test_v11_xml_serializer(self):
+ """Ensure that a v1.1 request responds with a v1.1 xmlns"""
+ request = webob.Request.blank('/v1.1',
+ headers={"Accept": "application/xml"})
+
+ fault = faults.Fault(webob.exc.HTTPBadRequest(explanation='scram'))
+ response = request.get_response(fault)
+
+ self.assertTrue(common.XML_NS_V11 in response.body)
+ self.assertEqual(response.content_type, "application/xml")
+ self.assertEqual(response.status_int, 400)
+
+
+class FaultsXMLSerializationTestV11(test.TestCase):
+ """Tests covering `nova.api.openstack.faults:Fault` class."""
+
+ def _prepare_xml(self, xml_string):
+ xml_string = xml_string.replace(" ", "")
+ xml_string = xml_string.replace("\n", "")
+ xml_string = xml_string.replace("\t", "")
+ return xml_string
+
+ def test_400_fault(self):
+ metadata = {'attributes': {"badRequest": 'code'}}
+ serializer = wsgi.XMLDictSerializer(metadata=metadata,
+ xmlns=common.XML_NS_V11)
+
+ fixture = {
+ "badRequest": {
+ "message": "scram",
+ "code": 400,
+ },
+ }
+
+ output = serializer.serialize(fixture)
+ actual = minidom.parseString(self._prepare_xml(output))
+
+ expected = minidom.parseString(self._prepare_xml("""
+ <badRequest code="400" xmlns="%s">
+ <message>scram</message>
+ </badRequest>
+ """) % common.XML_NS_V11)
+
+ self.assertEqual(expected.toxml(), actual.toxml())
+
+ def test_413_fault(self):
+ metadata = {'attributes': {"overLimit": 'code'}}
+ serializer = wsgi.XMLDictSerializer(metadata=metadata,
+ xmlns=common.XML_NS_V11)
+
+ fixture = {
+ "overLimit": {
+ "message": "sorry",
+ "code": 413,
+ "retryAfter": 4,
+ },
+ }
+
+ output = serializer.serialize(fixture)
+ actual = minidom.parseString(self._prepare_xml(output))
+
+ expected = minidom.parseString(self._prepare_xml("""
+ <overLimit code="413" xmlns="%s">
+ <message>sorry</message>
+ <retryAfter>4</retryAfter>
+ </overLimit>
+ """) % common.XML_NS_V11)
+
+ self.assertEqual(expected.toxml(), actual.toxml())
+
+ def test_404_fault(self):
+ metadata = {'attributes': {"itemNotFound": 'code'}}
+ serializer = wsgi.XMLDictSerializer(metadata=metadata,
+ xmlns=common.XML_NS_V11)
+
+ fixture = {
+ "itemNotFound": {
+ "message": "sorry",
+ "code": 404,
+ },
+ }
+
+ output = serializer.serialize(fixture)
+ actual = minidom.parseString(self._prepare_xml(output))
+
+ expected = minidom.parseString(self._prepare_xml("""
+ <itemNotFound code="404" xmlns="%s">
+ <message>sorry</message>
+ </itemNotFound>
+ """) % common.XML_NS_V11)
+
+ self.assertEqual(expected.toxml(), actual.toxml())
diff --git a/nova/tests/api/openstack/test_image_metadata.py b/nova/tests/api/openstack/test_image_metadata.py
index d9fb61e2a..31ca18497 100644
--- a/nova/tests/api/openstack/test_image_metadata.py
+++ b/nova/tests/api/openstack/test_image_metadata.py
@@ -103,8 +103,7 @@ class ImageMetaDataTest(test.TestCase):
super(ImageMetaDataTest, self).tearDown()
def test_index(self):
- req = webob.Request.blank('/v1.1/images/1/meta')
- req.environ['api.version'] = '1.1'
+ req = webob.Request.blank('/v1.1/images/1/metadata')
res = req.get_response(fakes.wsgi_app())
res_dict = json.loads(res.body)
self.assertEqual(200, res.status_int)
@@ -114,8 +113,7 @@ class ImageMetaDataTest(test.TestCase):
self.assertEqual(value, res_dict['metadata'][key])
def test_show(self):
- req = webob.Request.blank('/v1.1/images/1/meta/key1')
- req.environ['api.version'] = '1.1'
+ req = webob.Request.blank('/v1.1/images/1/metadata/key1')
res = req.get_response(fakes.wsgi_app())
res_dict = json.loads(res.body)
self.assertEqual(200, res.status_int)
@@ -124,42 +122,66 @@ class ImageMetaDataTest(test.TestCase):
self.assertEqual('value1', res_dict['meta']['key1'])
def test_show_not_found(self):
- req = webob.Request.blank('/v1.1/images/1/meta/key9')
- req.environ['api.version'] = '1.1'
+ req = webob.Request.blank('/v1.1/images/1/metadata/key9')
res = req.get_response(fakes.wsgi_app())
self.assertEqual(404, res.status_int)
def test_create(self):
- req = webob.Request.blank('/v1.1/images/2/meta')
- req.environ['api.version'] = '1.1'
+ req = webob.Request.blank('/v1.1/images/2/metadata')
req.method = 'POST'
req.body = '{"metadata": {"key9": "value9"}}'
req.headers["content-type"] = "application/json"
res = req.get_response(fakes.wsgi_app())
- res_dict = json.loads(res.body)
+
+ self.assertEqual(200, res.status_int)
+ actual_output = json.loads(res.body)
+
+ expected_output = {
+ 'metadata': {
+ 'key1': 'value1',
+ 'key2': 'value2',
+ 'key9': 'value9',
+ },
+ }
+
+ self.assertEqual(expected_output, actual_output)
+
+ def test_update_all(self):
+ req = webob.Request.blank('/v1.1/images/2/metadata')
+ req.method = 'PUT'
+ req.body = '{"metadata": {"key9": "value9"}}'
+ req.headers["content-type"] = "application/json"
+ res = req.get_response(fakes.wsgi_app())
+
self.assertEqual(200, res.status_int)
- self.assertEqual('value9', res_dict['metadata']['key9'])
- # other items should not be modified
- self.assertEqual('value1', res_dict['metadata']['key1'])
- self.assertEqual('value2', res_dict['metadata']['key2'])
- self.assertEqual(1, len(res_dict))
+ actual_output = json.loads(res.body)
+
+ expected_output = {
+ 'metadata': {
+ 'key9': 'value9',
+ },
+ }
+
+ self.assertEqual(expected_output, actual_output)
def test_update_item(self):
- req = webob.Request.blank('/v1.1/images/1/meta/key1')
- req.environ['api.version'] = '1.1'
+ req = webob.Request.blank('/v1.1/images/1/metadata/key1')
req.method = 'PUT'
req.body = '{"meta": {"key1": "zz"}}'
req.headers["content-type"] = "application/json"
res = req.get_response(fakes.wsgi_app())
+
self.assertEqual(200, res.status_int)
- res_dict = json.loads(res.body)
- self.assertTrue('meta' in res_dict)
- self.assertEqual(len(res_dict['meta']), 1)
- self.assertEqual('zz', res_dict['meta']['key1'])
+ actual_output = json.loads(res.body)
+ expected_output = {
+ 'meta': {
+ 'key1': 'zz',
+ },
+ }
+ self.assertEqual(actual_output, expected_output)
def test_update_item_bad_body(self):
- req = webob.Request.blank('/v1.1/images/1/meta/key1')
- req.environ['api.version'] = '1.1'
+ req = webob.Request.blank('/v1.1/images/1/metadata/key1')
req.method = 'PUT'
req.body = '{"key1": "zz"}'
req.headers["content-type"] = "application/json"
@@ -167,8 +189,7 @@ class ImageMetaDataTest(test.TestCase):
self.assertEqual(400, res.status_int)
def test_update_item_too_many_keys(self):
- req = webob.Request.blank('/v1.1/images/1/meta/key1')
- req.environ['api.version'] = '1.1'
+ req = webob.Request.blank('/v1.1/images/1/metadata/key1')
req.method = 'PUT'
req.body = '{"meta": {"key1": "value1", "key2": "value2"}}'
req.headers["content-type"] = "application/json"
@@ -176,24 +197,38 @@ class ImageMetaDataTest(test.TestCase):
self.assertEqual(400, res.status_int)
def test_update_item_body_uri_mismatch(self):
- req = webob.Request.blank('/v1.1/images/1/meta/bad')
- req.environ['api.version'] = '1.1'
+ req = webob.Request.blank('/v1.1/images/1/metadata/bad')
req.method = 'PUT'
req.body = '{"meta": {"key1": "value1"}}'
req.headers["content-type"] = "application/json"
res = req.get_response(fakes.wsgi_app())
self.assertEqual(400, res.status_int)
+ def test_update_item_xml(self):
+ req = webob.Request.blank('/v1.1/images/1/metadata/key1')
+ req.method = 'PUT'
+ req.body = '<meta key="key1">five</meta>'
+ req.headers["content-type"] = "application/xml"
+ res = req.get_response(fakes.wsgi_app())
+
+ self.assertEqual(200, res.status_int)
+ actual_output = json.loads(res.body)
+ expected_output = {
+ 'meta': {
+ 'key1': 'five',
+ },
+ }
+ self.assertEqual(actual_output, expected_output)
+
def test_delete(self):
- req = webob.Request.blank('/v1.1/images/2/meta/key1')
- req.environ['api.version'] = '1.1'
+ req = webob.Request.blank('/v1.1/images/2/metadata/key1')
req.method = 'DELETE'
res = req.get_response(fakes.wsgi_app())
- self.assertEqual(200, res.status_int)
+ self.assertEqual(204, res.status_int)
+ self.assertEqual('', res.body)
def test_delete_not_found(self):
- req = webob.Request.blank('/v1.1/images/2/meta/blah')
- req.environ['api.version'] = '1.1'
+ req = webob.Request.blank('/v1.1/images/2/metadata/blah')
req.method = 'DELETE'
res = req.get_response(fakes.wsgi_app())
self.assertEqual(404, res.status_int)
@@ -203,8 +238,7 @@ class ImageMetaDataTest(test.TestCase):
for num in range(FLAGS.quota_metadata_items + 1):
data['metadata']['key%i' % num] = "blah"
json_string = str(data).replace("\'", "\"")
- req = webob.Request.blank('/v1.1/images/2/meta')
- req.environ['api.version'] = '1.1'
+ req = webob.Request.blank('/v1.1/images/2/metadata')
req.method = 'POST'
req.body = json_string
req.headers["content-type"] = "application/json"
@@ -212,8 +246,7 @@ class ImageMetaDataTest(test.TestCase):
self.assertEqual(400, res.status_int)
def test_too_many_metadata_items_on_put(self):
- req = webob.Request.blank('/v1.1/images/3/meta/blah')
- req.environ['api.version'] = '1.1'
+ req = webob.Request.blank('/v1.1/images/3/metadata/blah')
req.method = 'PUT'
req.body = '{"meta": {"blah": "blah"}}'
req.headers["content-type"] = "application/json"
@@ -221,9 +254,49 @@ class ImageMetaDataTest(test.TestCase):
self.assertEqual(400, res.status_int)
+class ImageMetadataXMLDeserializationTest(test.TestCase):
+
+ deserializer = openstack.image_metadata.ImageMetadataXMLDeserializer()
+
+ def test_create(self):
+ request_body = """
+ <metadata xmlns="http://docs.openstack.org/compute/api/v1.1">
+ <meta key='123'>asdf</meta>
+ <meta key='567'>jkl;</meta>
+ </metadata>"""
+ output = self.deserializer.deserialize(request_body, 'create')
+ expected = {"body": {"metadata": {"123": "asdf", "567": "jkl;"}}}
+ self.assertEquals(output, expected)
+
+ def test_create_empty(self):
+ request_body = """
+ <metadata xmlns="http://docs.openstack.org/compute/api/v1.1"/>"""
+ output = self.deserializer.deserialize(request_body, 'create')
+ expected = {"body": {"metadata": {}}}
+ self.assertEquals(output, expected)
+
+ def test_update_all(self):
+ request_body = """
+ <metadata xmlns="http://docs.openstack.org/compute/api/v1.1">
+ <meta key='123'>asdf</meta>
+ <meta key='567'>jkl;</meta>
+ </metadata>"""
+ output = self.deserializer.deserialize(request_body, 'update_all')
+ expected = {"body": {"metadata": {"123": "asdf", "567": "jkl;"}}}
+ self.assertEquals(output, expected)
+
+ def test_update(self):
+ request_body = """
+ <meta xmlns="http://docs.openstack.org/compute/api/v1.1"
+ key='123'>asdf</meta>"""
+ output = self.deserializer.deserialize(request_body, 'update')
+ expected = {"body": {"meta": {"123": "asdf"}}}
+ self.assertEquals(output, expected)
+
+
class ImageMetadataXMLSerializationTest(test.TestCase):
- def test_index_xml(self):
+ def test_index(self):
serializer = openstack.image_metadata.ImageMetadataXMLSerializer()
fixture = {
'metadata': {
@@ -247,7 +320,7 @@ class ImageMetadataXMLSerializationTest(test.TestCase):
self.assertEqual(expected.toxml(), actual.toxml())
- def test_index_xml_null(self):
+ def test_index_null(self):
serializer = openstack.image_metadata.ImageMetadataXMLSerializer()
fixture = {
'metadata': {
@@ -267,7 +340,7 @@ class ImageMetadataXMLSerializationTest(test.TestCase):
self.assertEqual(expected.toxml(), actual.toxml())
- def test_index_xml_unicode(self):
+ def test_index_unicode(self):
serializer = openstack.image_metadata.ImageMetadataXMLSerializer()
fixture = {
'metadata': {
@@ -287,7 +360,7 @@ class ImageMetadataXMLSerializationTest(test.TestCase):
self.assertEqual(expected.toxml(), actual.toxml())
- def test_show_xml(self):
+ def test_show(self):
serializer = openstack.image_metadata.ImageMetadataXMLSerializer()
fixture = {
'meta': {
@@ -305,7 +378,31 @@ class ImageMetadataXMLSerializationTest(test.TestCase):
self.assertEqual(expected.toxml(), actual.toxml())
- def test_update_item_xml(self):
+ def test_update_all(self):
+ serializer = openstack.image_metadata.ImageMetadataXMLSerializer()
+ fixture = {
+ 'metadata': {
+ 'key6': 'value6',
+ 'key4': 'value4',
+ },
+ }
+ output = serializer.serialize(fixture, 'update_all')
+ actual = minidom.parseString(output.replace(" ", ""))
+
+ expected = minidom.parseString("""
+ <metadata xmlns="http://docs.openstack.org/compute/api/v1.1">
+ <meta key="key6">
+ value6
+ </meta>
+ <meta key="key4">
+ value4
+ </meta>
+ </metadata>
+ """.replace(" ", ""))
+
+ self.assertEqual(expected.toxml(), actual.toxml())
+
+ def test_update_item(self):
serializer = openstack.image_metadata.ImageMetadataXMLSerializer()
fixture = {
'meta': {
@@ -323,7 +420,7 @@ class ImageMetadataXMLSerializationTest(test.TestCase):
self.assertEqual(expected.toxml(), actual.toxml())
- def test_create_xml(self):
+ def test_create(self):
serializer = openstack.image_metadata.ImageMetadataXMLSerializer()
fixture = {
'metadata': {
@@ -350,3 +447,8 @@ class ImageMetadataXMLSerializationTest(test.TestCase):
""".replace(" ", ""))
self.assertEqual(expected.toxml(), actual.toxml())
+
+ def test_delete(self):
+ serializer = openstack.image_metadata.ImageMetadataXMLSerializer()
+ output = serializer.serialize(None, 'delete')
+ self.assertEqual(output, '')
diff --git a/nova/tests/api/openstack/test_images.py b/nova/tests/api/openstack/test_images.py
index 17f2fb755..87a695dde 100644
--- a/nova/tests/api/openstack/test_images.py
+++ b/nova/tests/api/openstack/test_images.py
@@ -538,7 +538,7 @@ class ImageControllerWithGlanceServiceTest(test.TestCase):
# because the element hasn't changed definition
expected = minidom.parseString("""
<itemNotFound code="404"
- xmlns="http://docs.rackspacecloud.com/servers/api/v1.0">
+ xmlns="http://docs.openstack.org/compute/api/v1.1">
<message>
Image not found.
</message>
diff --git a/nova/tests/api/openstack/test_servers.py b/nova/tests/api/openstack/test_servers.py
index 1c66c1aa6..56bc2cf10 100644
--- a/nova/tests/api/openstack/test_servers.py
+++ b/nova/tests/api/openstack/test_servers.py
@@ -30,8 +30,9 @@ from nova import flags
from nova import test
from nova import utils
import nova.api.openstack
-from nova.api.openstack import servers
from nova.api.openstack import create_instance_helper
+from nova.api.openstack import servers
+from nova.api.openstack import wsgi
import nova.compute.api
from nova.compute import instance_types
from nova.compute import power_state
@@ -941,6 +942,18 @@ class ServersTest(test.TestCase):
res = req.get_response(fakes.wsgi_app())
self.assertEqual(res.status_int, 400)
+ def test_create_instance_no_server_entity(self):
+ self._setup_for_create_instance()
+
+ body = {}
+
+ req = webob.Request.blank('/v1.0/servers')
+ req.method = 'POST'
+ req.body = json.dumps(body)
+ req.headers["content-type"] = "application/json"
+ res = req.get_response(fakes.wsgi_app())
+ self.assertEqual(res.status_int, 422)
+
def test_create_instance_whitespace_name(self):
self._setup_for_create_instance()
@@ -2188,6 +2201,62 @@ b25zLiINCg0KLVJpY2hhcmQgQmFjaA==""",
"http://localhost:8774/v1.1/images/1")
+class TextAddressesXMLSerialization(test.TestCase):
+
+ serializer = nova.api.openstack.ips.IPXMLSerializer()
+
+ def test_show(self):
+ fixture = {
+ 'network_2': [
+ {'addr': '192.168.0.1', 'version': 4},
+ {'addr': 'fe80::beef', 'version': 6},
+ ],
+ }
+ output = self.serializer.serialize(fixture, 'show')
+ actual = minidom.parseString(output.replace(" ", ""))
+
+ expected = minidom.parseString("""
+ <network xmlns="http://docs.openstack.org/compute/api/v1.1"
+ id="network_2">
+ <ip version="4" addr="192.168.0.1"/>
+ <ip version="6" addr="fe80::beef"/>
+ </network>
+ """.replace(" ", ""))
+
+ self.assertEqual(expected.toxml(), actual.toxml())
+
+ def test_index(self):
+ fixture = {
+ 'addresses': {
+ 'network_1': [
+ {'addr': '192.168.0.3', 'version': 4},
+ {'addr': '192.168.0.5', 'version': 4},
+ ],
+ 'network_2': [
+ {'addr': '192.168.0.1', 'version': 4},
+ {'addr': 'fe80::beef', 'version': 6},
+ ],
+ },
+ }
+ output = self.serializer.serialize(fixture, 'index')
+ actual = minidom.parseString(output.replace(" ", ""))
+
+ expected = minidom.parseString("""
+ <addresses xmlns="http://docs.openstack.org/compute/api/v1.1">
+ <network id="network_2">
+ <ip version="4" addr="192.168.0.1"/>
+ <ip version="6" addr="fe80::beef"/>
+ </network>
+ <network id="network_1">
+ <ip version="4" addr="192.168.0.3"/>
+ <ip version="4" addr="192.168.0.5"/>
+ </network>
+ </addresses>
+ """.replace(" ", ""))
+
+ self.assertEqual(expected.toxml(), actual.toxml())
+
+
class TestServerInstanceCreation(test.TestCase):
def setUp(self):
diff --git a/nova/tests/api/openstack/test_wsgi.py b/nova/tests/api/openstack/test_wsgi.py
index 5bdda7c7e..6dea78d17 100644
--- a/nova/tests/api/openstack/test_wsgi.py
+++ b/nova/tests/api/openstack/test_wsgi.py
@@ -256,6 +256,13 @@ class ResponseSerializerTest(test.TestCase):
self.assertEqual(response.body, 'pew_json')
self.assertEqual(response.status_int, 404)
+ def test_serialize_response_None(self):
+ response = self.serializer.serialize(None, 'application/json')
+ print response
+ self.assertEqual(response.headers['Content-Type'], 'application/json')
+ self.assertEqual(response.body, '')
+ self.assertEqual(response.status_int, 404)
+
def test_serialize_response_dict_to_unknown_content_type(self):
self.assertRaises(exception.InvalidContentType,
self.serializer.serialize,
diff --git a/nova/tests/test_cloud.py b/nova/tests/test_cloud.py
index 8cdc73a66..136082cc1 100644
--- a/nova/tests/test_cloud.py
+++ b/nova/tests/test_cloud.py
@@ -269,25 +269,64 @@ class CloudTestCase(test.TestCase):
delete = self.cloud.delete_security_group
self.assertRaises(exception.ApiError, delete, self.context)
- def test_authorize_revoke_security_group_ingress(self):
+ def test_authorize_security_group_ingress(self):
kwargs = {'project_id': self.context.project_id, 'name': 'test'}
sec = db.security_group_create(self.context, kwargs)
authz = self.cloud.authorize_security_group_ingress
kwargs = {'to_port': '999', 'from_port': '999', 'ip_protocol': 'tcp'}
- authz(self.context, group_name=sec['name'], **kwargs)
+ self.assertTrue(authz(self.context, group_name=sec['name'], **kwargs))
+
+ def test_authorize_security_group_ingress_ip_permissions_ip_ranges(self):
+ kwargs = {'project_id': self.context.project_id, 'name': 'test'}
+ sec = db.security_group_create(self.context, kwargs)
+ authz = self.cloud.authorize_security_group_ingress
+ kwargs = {'ip_permissions': [{'to_port': 81, 'from_port': 81,
+ 'ip_ranges':
+ {'1': {'cidr_ip': u'0.0.0.0/0'},
+ '2': {'cidr_ip': u'10.10.10.10/32'}},
+ 'ip_protocol': u'tcp'}]}
+ self.assertTrue(authz(self.context, group_name=sec['name'], **kwargs))
+
+ def test_authorize_security_group_ingress_ip_permissions_groups(self):
+ kwargs = {'project_id': self.context.project_id, 'name': 'test'}
+ sec = db.security_group_create(self.context, kwargs)
+ authz = self.cloud.authorize_security_group_ingress
+ kwargs = {'ip_permissions': [{'to_port': 81, 'from_port': 81,
+ 'ip_ranges':{'1': {'cidr_ip': u'0.0.0.0/0'},
+ '2': {'cidr_ip': u'10.10.10.10/32'}},
+ 'groups': {'1': {'user_id': u'someuser',
+ 'group_name': u'somegroup1'},
+ '2': {'user_id': u'someuser',
+ 'group_name': u'othergroup2'}},
+ 'ip_protocol': u'tcp'}]}
+ self.assertTrue(authz(self.context, group_name=sec['name'], **kwargs))
+
+ def test_revoke_security_group_ingress(self):
+ kwargs = {'project_id': self.context.project_id, 'name': 'test'}
+ sec = db.security_group_create(self.context, kwargs)
+ authz = self.cloud.authorize_security_group_ingress
+ kwargs = {'to_port': '999', 'from_port': '999', 'ip_protocol': 'tcp'}
+ authz(self.context, group_id=sec['id'], **kwargs)
revoke = self.cloud.revoke_security_group_ingress
self.assertTrue(revoke(self.context, group_name=sec['name'], **kwargs))
- def test_authorize_revoke_security_group_ingress_by_id(self):
- sec = db.security_group_create(self.context,
- {'project_id': self.context.project_id,
- 'name': 'test'})
+ def test_revoke_security_group_ingress_by_id(self):
+ kwargs = {'project_id': self.context.project_id, 'name': 'test'}
+ sec = db.security_group_create(self.context, kwargs)
authz = self.cloud.authorize_security_group_ingress
kwargs = {'to_port': '999', 'from_port': '999', 'ip_protocol': 'tcp'}
authz(self.context, group_id=sec['id'], **kwargs)
revoke = self.cloud.revoke_security_group_ingress
self.assertTrue(revoke(self.context, group_id=sec['id'], **kwargs))
+ def test_authorize_security_group_ingress_by_id(self):
+ sec = db.security_group_create(self.context,
+ {'project_id': self.context.project_id,
+ 'name': 'test'})
+ authz = self.cloud.authorize_security_group_ingress
+ kwargs = {'to_port': '999', 'from_port': '999', 'ip_protocol': 'tcp'}
+ self.assertTrue(authz(self.context, group_id=sec['id'], **kwargs))
+
def test_authorize_security_group_ingress_missing_protocol_params(self):
sec = db.security_group_create(self.context,
{'project_id': self.context.project_id,
@@ -908,6 +947,21 @@ class CloudTestCase(test.TestCase):
self._wait_for_running(ec2_instance_id)
return ec2_instance_id
+ def test_rescue_unrescue_instance(self):
+ instance_id = self._run_instance(
+ image_id='ami-1',
+ instance_type=FLAGS.default_instance_type,
+ max_count=1)
+ self.cloud.rescue_instance(context=self.context,
+ instance_id=instance_id)
+ # NOTE(vish): This currently does no validation, it simply makes sure
+ # that the code path doesn't throw an exception.
+ self.cloud.unrescue_instance(context=self.context,
+ instance_id=instance_id)
+ # TODO(soren): We need this until we can stop polling in the rpc code
+ # for unit tests.
+ self.cloud.terminate_instances(self.context, [instance_id])
+
def test_console_output(self):
instance_id = self._run_instance(
image_id='ami-1',
diff --git a/nova/virt/libvirt.xml.template b/nova/virt/libvirt.xml.template
index e1a683da8..ea62524cf 100644
--- a/nova/virt/libvirt.xml.template
+++ b/nova/virt/libvirt.xml.template
@@ -82,9 +82,13 @@
</disk>
#end if
#for $vol in $volumes
- <disk type='block'>
+ <disk type='${vol.type}'>
<driver type='raw'/>
+ #if $vol.type == 'network'
+ <source protocol='${vol.protocol}' name='${vol.name}'/>
+ #else
<source dev='${vol.device_path}'/>
+ #end if
<target dev='${vol.mount_device}' bus='${disk_bus}'/>
</disk>
#end for
diff --git a/nova/virt/libvirt/connection.py b/nova/virt/libvirt/connection.py
index 342dea98f..150173f5a 100644
--- a/nova/virt/libvirt/connection.py
+++ b/nova/virt/libvirt/connection.py
@@ -335,21 +335,20 @@ class LibvirtConnection(driver.ComputeDriver):
def attach_volume(self, instance_name, device_path, mountpoint):
virt_dom = self._lookup_by_name(instance_name)
mount_device = mountpoint.rpartition("/")[2]
- if device_path.startswith('/dev/'):
+ (type, protocol, name) = \
+ self._get_volume_device_info(vol['device_path'])
+ if type == 'block':
xml = """<disk type='block'>
<driver name='qemu' type='raw'/>
<source dev='%s'/>
<target dev='%s' bus='virtio'/>
</disk>""" % (device_path, mount_device)
- elif ':' in device_path:
- (protocol, name) = device_path.split(':')
+ elif type == 'network':
xml = """<disk type='network'>
<driver name='qemu' type='raw'/>
<source protocol='%s' name='%s'/>
<target dev='%s' bus='virtio'/>
- </disk>""" % (protocol,
- name,
- mount_device)
+ </disk>""" % (protocol, name, mount_device)
else:
raise exception.InvalidDevicePath(path=device_path)
@@ -973,6 +972,16 @@ class LibvirtConnection(driver.ComputeDriver):
return True
return False
+ @exception.wrap_exception
+ def _get_volume_device_info(self, device_path):
+ if device_path.startswith('/dev/'):
+ return ('block', None, None)
+ elif ':' in device_path:
+ (protocol, name) = device_path.split(':')
+ return ('network', protocol, name)
+ else:
+ raise exception.InvalidDevicePath(path=device_path)
+
def _prepare_xml_info(self, instance, rescue=False, network_info=None,
block_device_mapping=None):
block_device_mapping = block_device_mapping or []
@@ -995,6 +1004,9 @@ class LibvirtConnection(driver.ComputeDriver):
for vol in block_device_mapping:
vol['mount_device'] = _strip_dev(vol['mount_device'])
+ (vol['type'], vol['protocol'], vol['name']) = \
+ self._get_volume_device_info(vol['device_path'])
+
ebs_root = self._volume_in_mapping(self.root_mount_device,
block_device_mapping)
if self._volume_in_mapping(self.local_mount_device,
diff --git a/nova/virt/vmwareapi/network_utils.py b/nova/virt/vmwareapi/network_utils.py
index e77842535..08e3bf0b1 100644
--- a/nova/virt/vmwareapi/network_utils.py
+++ b/nova/virt/vmwareapi/network_utils.py
@@ -45,10 +45,30 @@ def get_network_with_the_name(session, network_name="vmnet0"):
networks = session._call_method(vim_util,
"get_properties_for_a_collection_of_objects",
"Network", vm_networks, ["summary.name"])
- for network in networks:
- if network.propSet[0].val == network_name:
- return network.obj
- return None
+ network_obj = {}
+ for network in vm_networks:
+ # Get network properties
+ if network._type == 'DistributedVirtualPortgroup':
+ props = session._call_method(vim_util,
+ "get_dynamic_property", network,
+ "DistributedVirtualPortgroup", "config")
+ # NOTE(asomya): This only works on ESXi if the port binding is
+ # set to ephemeral
+ if props.name == network_name:
+ network_obj['type'] = 'DistributedVirtualPortgroup'
+ network_obj['dvpg'] = props.key
+ network_obj['dvsw'] = props.distributedVirtualSwitch.value
+ else:
+ props = session._call_method(vim_util,
+ "get_dynamic_property", network,
+ "Network", "summary.name")
+ if props == network_name:
+ network_obj['type'] = 'Network'
+ network_obj['name'] = network_name
+ if (len(network_obj) > 0):
+ return network_obj
+ else:
+ return None
def get_vswitch_for_vlan_interface(session, vlan_interface):
diff --git a/nova/virt/vmwareapi/vm_util.py b/nova/virt/vmwareapi/vm_util.py
index 1638149f1..55578dd3c 100644
--- a/nova/virt/vmwareapi/vm_util.py
+++ b/nova/virt/vmwareapi/vm_util.py
@@ -40,7 +40,7 @@ def split_datastore_path(datastore_path):
def get_vm_create_spec(client_factory, instance, data_store_name,
network_name="vmnet0",
- os_type="otherGuest"):
+ os_type="otherGuest", network_ref=None):
"""Builds the VM Create spec."""
config_spec = client_factory.create('ns0:VirtualMachineConfigSpec')
config_spec.name = instance.name
@@ -93,7 +93,8 @@ def create_controller_spec(client_factory, key):
return virtual_device_config
-def create_network_spec(client_factory, network_name, mac_address):
+def create_network_spec(client_factory, network_name, mac_address,
+ network_ref=None):
"""
Builds a config spec for the addition of a new network
adapter to the VM.
@@ -105,9 +106,24 @@ def create_network_spec(client_factory, network_name, mac_address):
# Get the recommended card type for the VM based on the guest OS of the VM
net_device = client_factory.create('ns0:VirtualPCNet32')
- backing = \
- client_factory.create('ns0:VirtualEthernetCardNetworkBackingInfo')
- backing.deviceName = network_name
+ # NOTE(asomya): Only works on ESXi if the portgroup binding is set to
+ # ephemeral. Invalid configuration if set to static and the NIC does
+ # not come up on boot if set to dynamic.
+ backing = None
+ if (network_ref['type'] == "DistributedVirtualPortgroup"):
+ backing_name = \
+ 'ns0:VirtualEthernetCardDistributedVirtualPortBackingInfo'
+ backing = \
+ client_factory.create(backing_name)
+ portgroup = \
+ client_factory.create('ns0:DistributedVirtualSwitchPortConnection')
+ portgroup.switchUuid = network_ref['dvsw']
+ portgroup.portgroupKey = network_ref['dvpg']
+ backing.port = portgroup
+ else:
+ backing = \
+ client_factory.create('ns0:VirtualEthernetCardNetworkBackingInfo')
+ backing.deviceName = network_name
connectable_spec = \
client_factory.create('ns0:VirtualDeviceConnectInfo')
@@ -278,9 +294,11 @@ def get_dummy_vm_create_spec(client_factory, name, data_store_name):
return config_spec
-def get_machine_id_change_spec(client_factory, mac, ip_addr, netmask, gateway):
+def get_machine_id_change_spec(client_factory, mac, ip_addr, netmask,
+ gateway, broadcast, dns):
"""Builds the machine id change config spec."""
- machine_id_str = "%s;%s;%s;%s" % (mac, ip_addr, netmask, gateway)
+ machine_id_str = "%s;%s;%s;%s;%s;%s" % (mac, ip_addr, netmask,
+ gateway, broadcast, dns)
virtual_machine_config_spec = \
client_factory.create('ns0:VirtualMachineConfigSpec')
diff --git a/nova/virt/vmwareapi/vmops.py b/nova/virt/vmwareapi/vmops.py
index 94d9e6226..568359598 100644
--- a/nova/virt/vmwareapi/vmops.py
+++ b/nova/virt/vmwareapi/vmops.py
@@ -116,8 +116,9 @@ class VMWareVMOps(object):
net_name)
if network_ref is None:
raise exception.NetworkNotFoundForBridge(bridge=net_name)
+ return network_ref
- _check_if_network_bridge_exists()
+ network_obj = _check_if_network_bridge_exists()
def _get_datastore_ref():
"""Get the datastore list and choose the first local storage."""
@@ -175,8 +176,10 @@ class VMWareVMOps(object):
vm_folder_mor, res_pool_mor = _get_vmfolder_and_res_pool_mors()
# Get the create vm config spec
- config_spec = vm_util.get_vm_create_spec(client_factory, instance,
- data_store_name, net_name, os_type)
+ config_spec = vm_util.get_vm_create_spec(
+ client_factory, instance,
+ data_store_name, net_name, os_type,
+ network_obj)
def _execute_create_vm():
"""Create VM on ESX host."""
@@ -718,13 +721,17 @@ class VMWareVMOps(object):
net_mask = network["netmask"]
gateway = network["gateway"]
+ broadcast = network["broadcast"]
+ dns = network["dns"]
+
addresses = db.instance_get_fixed_addresses(admin_context,
instance['id'])
ip_addr = addresses[0] if addresses else None
machine_id_chanfge_spec = \
vm_util.get_machine_id_change_spec(client_factory, mac_address,
- ip_addr, net_mask, gateway)
+ ip_addr, net_mask, gateway,
+ broadcast, dns)
LOG.debug(_("Reconfiguring VM instance %(name)s to set the machine id "
"with ip - %(ip_addr)s") %
({'name': instance.name,
diff --git a/nova/volume/api.py b/nova/volume/api.py
index cfc274c77..52b3a9fed 100644
--- a/nova/volume/api.py
+++ b/nova/volume/api.py
@@ -52,7 +52,7 @@ class API(base.Base):
if quota.allowed_volumes(context, 1, size) < 1:
pid = context.project_id
- LOG.warn(_("Quota exceeeded for %(pid)s, tried to create"
+ LOG.warn(_("Quota exceeded for %(pid)s, tried to create"
" %(size)sG volume") % locals())
raise quota.QuotaError(_("Volume quota exceeded. You cannot "
"create a volume of size %sG") % size)
diff --git a/po/ast.po b/po/ast.po
index be9910a2c..ac6190424 100644
--- a/po/ast.po
+++ b/po/ast.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-03-19 06:18+0000\n"
-"X-Generator: Launchpad (build 12559)\n"
+"X-Launchpad-Export-Date: 2011-07-23 05:11+0000\n"
+"X-Generator: Launchpad (build 13405)\n"
#: ../nova/scheduler/chance.py:37 ../nova/scheduler/zone.py:55
#: ../nova/scheduler/simple.py:75 ../nova/scheduler/simple.py:110
diff --git a/po/cs.po b/po/cs.po
index 7c69e2f79..33f7808a5 100644
--- a/po/cs.po
+++ b/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-03-19 06:18+0000\n"
-"X-Generator: Launchpad (build 12559)\n"
+"X-Launchpad-Export-Date: 2011-07-23 05:11+0000\n"
+"X-Generator: Launchpad (build 13405)\n"
#: ../nova/scheduler/chance.py:37 ../nova/scheduler/zone.py:55
#: ../nova/scheduler/simple.py:75 ../nova/scheduler/simple.py:110
diff --git a/po/da.po b/po/da.po
index d24d89fd9..5aead53c3 100644
--- a/po/da.po
+++ b/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-03-19 06:18+0000\n"
-"X-Generator: Launchpad (build 12559)\n"
+"X-Launchpad-Export-Date: 2011-07-23 05:12+0000\n"
+"X-Generator: Launchpad (build 13405)\n"
#: ../nova/scheduler/chance.py:37 ../nova/scheduler/zone.py:55
#: ../nova/scheduler/simple.py:75 ../nova/scheduler/simple.py:110
diff --git a/po/de.po b/po/de.po
index 8b4a00d72..cf40a0f5e 100644
--- a/po/de.po
+++ b/po/de.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-04-03 19:42+0000\n"
-"Last-Translator: Matthias Loidolt <kedapperdrake@googlemail.com>\n"
+"PO-Revision-Date: 2011-06-06 07:58+0000\n"
+"Last-Translator: Christian Berendt <Unknown>\n"
"Language-Team: German <de@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-04-04 05:19+0000\n"
-"X-Generator: Launchpad (build 12559)\n"
+"X-Launchpad-Export-Date: 2011-07-23 05:12+0000\n"
+"X-Generator: Launchpad (build 13405)\n"
#: ../nova/scheduler/chance.py:37 ../nova/scheduler/zone.py:55
#: ../nova/scheduler/simple.py:75 ../nova/scheduler/simple.py:110
@@ -85,6 +85,7 @@ msgstr ""
#, python-format
msgid "%(param)s property not found for image %(_image_id)s"
msgstr ""
+"Die Property %(param)s konnte im Image %(_image_id)s nicht gefunden werden"
#: ../nova/api/openstack/servers.py:168
msgid "No keypairs defined"
@@ -141,12 +142,12 @@ msgstr "PID-Datei %s existiert nicht. Läuft der Daemon nicht?\n"
#: ../nova/twistd.py:221
msgid "No such process"
-msgstr ""
+msgstr "Kein passender Prozess gefunden"
#: ../nova/twistd.py:230 ../nova/service.py:224
#, python-format
msgid "Serving %s"
-msgstr ""
+msgstr "Bedient %s"
#: ../nova/twistd.py:262 ../nova/service.py:225
msgid "Full set of FLAGS:"
@@ -183,12 +184,13 @@ msgstr ""
#: ../nova/virt/xenapi/volumeops.py:91
#, python-format
msgid "Unable to attach volume to instance %s"
-msgstr ""
+msgstr "Nicht möglich Volumen zur Instanze %s hinzuzufügen"
#: ../nova/virt/xenapi/volumeops.py:93
#, python-format
msgid "Mountpoint %(mountpoint)s attached to instance %(instance_name)s"
msgstr ""
+"Einhängepunkt%(mountpoint)s zur Instanze %(instance_name)s hinzugefügt"
#. Detach VBD from VM
#: ../nova/virt/xenapi/volumeops.py:104
@@ -199,7 +201,7 @@ msgstr ""
#: ../nova/virt/xenapi/volumeops.py:112
#, python-format
msgid "Unable to locate volume %s"
-msgstr ""
+msgstr "Nicht möglich volume %s zufinden"
#: ../nova/virt/xenapi/volumeops.py:120
#, python-format
@@ -214,7 +216,7 @@ msgstr ""
#: ../nova/compute/instance_types.py:41
#, python-format
msgid "Unknown instance type: %s"
-msgstr ""
+msgstr "Unbekannter Instanztyp: %s"
#: ../nova/crypto.py:46
msgid "Filename of root CA"
@@ -230,7 +232,7 @@ msgstr "Dateiname der Certificate Revocation List"
#: ../nova/crypto.py:53
msgid "Where we keep our keys"
-msgstr ""
+msgstr "Wo wir unsere Schlüssel aufbewahren"
#: ../nova/crypto.py:55
msgid "Where we keep our root CA"
@@ -298,12 +300,12 @@ msgstr ""
#: ../nova/compute/manager.py:179
msgid "Instance has already been created"
-msgstr ""
+msgstr "Instanz wurde bereits erstellt"
#: ../nova/compute/manager.py:180
#, python-format
msgid "instance %s: starting..."
-msgstr ""
+msgstr "Instanz %s startet..."
#. pylint: disable=W0702
#: ../nova/compute/manager.py:219
@@ -314,7 +316,7 @@ msgstr ""
#: ../nova/compute/manager.py:233 ../nova/tests/test_cloud.py:286
#, python-format
msgid "Terminating instance %s"
-msgstr ""
+msgstr "Beende Instanz %s"
#: ../nova/compute/manager.py:255
#, python-format
@@ -377,7 +379,7 @@ msgstr ""
#: ../nova/compute/manager.py:372
#, python-format
msgid "instance %s: rescuing"
-msgstr ""
+msgstr "Instanz %s: Rettung"
#: ../nova/compute/manager.py:387
#, python-format
@@ -387,12 +389,12 @@ msgstr ""
#: ../nova/compute/manager.py:406
#, python-format
msgid "instance %s: pausing"
-msgstr ""
+msgstr "Instanz %s pausiert"
#: ../nova/compute/manager.py:423
#, python-format
msgid "instance %s: unpausing"
-msgstr ""
+msgstr "Instanz %s wird fortgesetzt"
#: ../nova/compute/manager.py:440
#, python-format
@@ -584,7 +586,7 @@ msgstr ""
#: ../nova/virt/connection.py:73
msgid "Failed to open connection to the hypervisor"
-msgstr ""
+msgstr "Konnte Verbindung zum Hypervisor nicht öffnen"
#: ../nova/network/linux_net.py:187
#, python-format
@@ -637,7 +639,7 @@ msgstr "Klasse %s konnte nicht gefunden werden"
#: ../nova/utils.py:118
#, python-format
msgid "Fetching %s"
-msgstr ""
+msgstr "Hole %s"
#: ../nova/utils.py:130
#, python-format
@@ -2562,7 +2564,7 @@ msgstr ""
#: ../nova/auth/manager.py:270
#, python-format
msgid "Using project name = user name (%s)"
-msgstr ""
+msgstr "Verwende Project-Name = User-Name (%s)"
#: ../nova/auth/manager.py:277
#, python-format
@@ -2572,7 +2574,7 @@ msgstr ""
#: ../nova/auth/manager.py:279
#, python-format
msgid "No project called %s could be found"
-msgstr ""
+msgstr "Es konnte kein Projekt mit dem Namen %s gefunden werden"
#: ../nova/auth/manager.py:287
#, python-format
@@ -2696,6 +2698,7 @@ msgstr ""
#: ../nova/service.py:195
msgid "The service database object disappeared, Recreating it."
msgstr ""
+"Das Service-Datenbank-Objekt ist verschwunden, es wird erneut erzeugt."
#: ../nova/service.py:207
msgid "Recovered model server connection!"
@@ -2723,7 +2726,7 @@ msgstr ""
#: ../nova/auth/ldapdriver.py:472
#, python-format
msgid "Group can't be created because group %s already exists"
-msgstr ""
+msgstr "Die Gruppe %s kann nicht angelegt werde, da sie bereits existiert"
#: ../nova/auth/ldapdriver.py:478
#, python-format
@@ -2739,6 +2742,7 @@ msgstr ""
#, python-format
msgid "User %s can't be added to the group because the user doesn't exist"
msgstr ""
+"Der User %s kann nicht zur Gruppe hinzugefügt werde, da er nicht existiert"
#: ../nova/auth/ldapdriver.py:510 ../nova/auth/ldapdriver.py:521
#, python-format
@@ -2755,6 +2759,7 @@ msgstr ""
msgid ""
"User %s can't be removed from the group because the user doesn't exist"
msgstr ""
+"Der User %s kann nicht aus der Gruppe entfernt werden, da er nicht existiert"
#: ../nova/auth/ldapdriver.py:528
#, python-format
@@ -2840,7 +2845,7 @@ msgstr ""
#: ../nova/api/ec2/admin.py:200
#, python-format
msgid "Delete project: %s"
-msgstr ""
+msgstr "Lösche Projekt %s"
#: ../nova/api/ec2/admin.py:214
#, python-format
diff --git a/po/en_AU.po b/po/en_AU.po
new file mode 100644
index 000000000..e53f9fc07
--- /dev/null
+++ b/po/en_AU.po
@@ -0,0 +1,2848 @@
+# English (Australia) translation for nova
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the nova package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+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 10:30+0000\n"
+"Last-Translator: Benny <Benjamin.Donald.Wilson.K@gmail.com>\n"
+"Language-Team: English (Australia) <en_AU@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"
+
+#: ../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 hosts found"
+
+#: ../nova/exception.py:33
+msgid "Unexpected error while running command."
+msgstr ""
+
+#: ../nova/exception.py:36
+#, python-format
+msgid ""
+"%(description)s\n"
+"Command: %(cmd)s\n"
+"Exit code: %(exit_code)s\n"
+"Stdout: %(stdout)r\n"
+"Stderr: %(stderr)r"
+msgstr ""
+
+#: ../nova/exception.py:107
+msgid "DB exception wrapped"
+msgstr ""
+
+#. exc_type, exc_value, exc_traceback = sys.exc_info()
+#: ../nova/exception.py:120
+msgid "Uncaught exception"
+msgstr ""
+
+#: ../nova/volume/api.py:45
+#, python-format
+msgid "Quota exceeeded for %(pid)s, tried to create %(size)sG volume"
+msgstr ""
+
+#: ../nova/volume/api.py:47
+#, python-format
+msgid "Volume quota exceeded. You cannot create a volume of size %sG"
+msgstr ""
+
+#: ../nova/volume/api.py:71 ../nova/volume/api.py:96
+msgid "Volume status must be available"
+msgstr ""
+
+#: ../nova/volume/api.py:98
+msgid "Volume is already attached"
+msgstr ""
+
+#: ../nova/volume/api.py:104
+msgid "Volume is already detached"
+msgstr ""
+
+#: ../nova/api/openstack/servers.py:72
+msgid "Failed to read private ip"
+msgstr ""
+
+#: ../nova/api/openstack/servers.py:79
+msgid "Failed to read public ip(s)"
+msgstr ""
+
+#: ../nova/api/openstack/servers.py:152
+#, python-format
+msgid "%(param)s property not found for image %(_image_id)s"
+msgstr ""
+
+#: ../nova/api/openstack/servers.py:168
+msgid "No keypairs defined"
+msgstr ""
+
+#: ../nova/api/openstack/servers.py:238
+#, python-format
+msgid "Compute.api::lock %s"
+msgstr ""
+
+#: ../nova/api/openstack/servers.py:253
+#, python-format
+msgid "Compute.api::unlock %s"
+msgstr ""
+
+#: ../nova/api/openstack/servers.py:267
+#, python-format
+msgid "Compute.api::get_lock %s"
+msgstr ""
+
+#: ../nova/api/openstack/servers.py:281
+#, python-format
+msgid "Compute.api::reset_network %s"
+msgstr ""
+
+#: ../nova/api/openstack/servers.py:292
+#, python-format
+msgid "Compute.api::pause %s"
+msgstr ""
+
+#: ../nova/api/openstack/servers.py:303
+#, python-format
+msgid "Compute.api::unpause %s"
+msgstr ""
+
+#: ../nova/api/openstack/servers.py:314
+#, python-format
+msgid "compute.api::suspend %s"
+msgstr ""
+
+#: ../nova/api/openstack/servers.py:325
+#, python-format
+msgid "compute.api::resume %s"
+msgstr ""
+
+#: ../nova/twistd.py:157
+msgid "Wrong number of arguments."
+msgstr ""
+
+#: ../nova/twistd.py:209
+#, python-format
+msgid "pidfile %s does not exist. Daemon not running?\n"
+msgstr ""
+
+#: ../nova/twistd.py:221
+msgid "No such process"
+msgstr ""
+
+#: ../nova/twistd.py:230 ../nova/service.py:224
+#, python-format
+msgid "Serving %s"
+msgstr ""
+
+#: ../nova/twistd.py:262 ../nova/service.py:225
+msgid "Full set of FLAGS:"
+msgstr ""
+
+#: ../nova/twistd.py:266
+#, python-format
+msgid "Starting %s"
+msgstr ""
+
+#: ../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 ""
+
+#. 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 ""
+
+#: ../nova/virt/xenapi/volumeops.py:69
+#, python-format
+msgid "Unable to create VDI on SR %(sr_ref)s for instance %(instance_name)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/volumeops.py:80
+#, python-format
+msgid "Unable to use SR %(sr_ref)s for instance %(instance_name)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/volumeops.py:91
+#, python-format
+msgid "Unable to attach volume to instance %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/volumeops.py:93
+#, python-format
+msgid "Mountpoint %(mountpoint)s attached to instance %(instance_name)s"
+msgstr ""
+
+#. Detach VBD from VM
+#: ../nova/virt/xenapi/volumeops.py:104
+#, python-format
+msgid "Detach_volume: %(instance_name)s, %(mountpoint)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/volumeops.py:112
+#, python-format
+msgid "Unable to locate volume %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/volumeops.py:120
+#, python-format
+msgid "Unable to detach volume %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/volumeops.py:127
+#, python-format
+msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
+msgstr ""
+
+#: ../nova/compute/instance_types.py:41
+#, python-format
+msgid "Unknown instance type: %s"
+msgstr ""
+
+#: ../nova/crypto.py:46
+msgid "Filename of root CA"
+msgstr ""
+
+#: ../nova/crypto.py:49
+msgid "Filename of private key"
+msgstr ""
+
+#: ../nova/crypto.py:51
+msgid "Filename of root Certificate Revokation List"
+msgstr ""
+
+#: ../nova/crypto.py:53
+msgid "Where we keep our keys"
+msgstr ""
+
+#: ../nova/crypto.py:55
+msgid "Where we keep our root CA"
+msgstr ""
+
+#: ../nova/crypto.py:57
+msgid "Should we use a CA for each project?"
+msgstr ""
+
+#: ../nova/crypto.py:61
+#, python-format
+msgid "Subject for certificate for users, %s for project, user, timestamp"
+msgstr ""
+
+#: ../nova/crypto.py:66
+#, python-format
+msgid "Subject for certificate for projects, %s for project, timestamp"
+msgstr ""
+
+#: ../nova/crypto.py:71
+#, python-format
+msgid "Subject for certificate for vpns, %s for project, timestamp"
+msgstr ""
+
+#: ../nova/crypto.py:258
+#, python-format
+msgid "Flags path: %s"
+msgstr ""
+
+#: ../nova/scheduler/manager.py:69
+#, python-format
+msgid "Casting to %(topic)s %(host)s for %(method)s"
+msgstr ""
+
+#: ../nova/compute/manager.py:78
+#, python-format
+msgid "check_instance_lock: decorating: |%s|"
+msgstr ""
+
+#: ../nova/compute/manager.py:80
+#, python-format
+msgid ""
+"check_instance_lock: arguments: |%(self)s| |%(context)s| |%(instance_id)s|"
+msgstr ""
+
+#: ../nova/compute/manager.py:84
+#, python-format
+msgid "check_instance_lock: locked: |%s|"
+msgstr ""
+
+#: ../nova/compute/manager.py:86
+#, python-format
+msgid "check_instance_lock: admin: |%s|"
+msgstr ""
+
+#: ../nova/compute/manager.py:91
+#, python-format
+msgid "check_instance_lock: executing: |%s|"
+msgstr ""
+
+#: ../nova/compute/manager.py:95
+#, python-format
+msgid "check_instance_lock: not executing |%s|"
+msgstr ""
+
+#: ../nova/compute/manager.py:179
+msgid "Instance has already been created"
+msgstr ""
+
+#: ../nova/compute/manager.py:180
+#, python-format
+msgid "instance %s: starting..."
+msgstr ""
+
+#. pylint: disable=W0702
+#: ../nova/compute/manager.py:219
+#, python-format
+msgid "instance %s: Failed to spawn"
+msgstr ""
+
+#: ../nova/compute/manager.py:233 ../nova/tests/test_cloud.py:286
+#, python-format
+msgid "Terminating instance %s"
+msgstr ""
+
+#: ../nova/compute/manager.py:255
+#, python-format
+msgid "Deallocating address %s"
+msgstr ""
+
+#: ../nova/compute/manager.py:268
+#, python-format
+msgid "trying to destroy already destroyed instance: %s"
+msgstr ""
+
+#: ../nova/compute/manager.py:282
+#, python-format
+msgid "Rebooting instance %s"
+msgstr ""
+
+#: ../nova/compute/manager.py:287
+#, python-format
+msgid ""
+"trying to reboot a non-running instance: %(instance_id)s (state: %(state)s "
+"expected: %(running)s)"
+msgstr ""
+
+#: ../nova/compute/manager.py:311
+#, python-format
+msgid "instance %s: snapshotting"
+msgstr ""
+
+#: ../nova/compute/manager.py:316
+#, python-format
+msgid ""
+"trying to snapshot a non-running instance: %(instance_id)s (state: %(state)s "
+"expected: %(running)s)"
+msgstr ""
+
+#: ../nova/compute/manager.py:332
+#, python-format
+msgid ""
+"trying to reset the password on a non-running instance: %(instance_id)s "
+"(state: %(instance_state)s expected: %(expected_state)s)"
+msgstr ""
+
+#: ../nova/compute/manager.py:335
+#, python-format
+msgid "instance %s: setting admin password"
+msgstr ""
+
+#: ../nova/compute/manager.py:353
+#, python-format
+msgid ""
+"trying to inject a file into a non-running instance: %(instance_id)s (state: "
+"%(instance_state)s expected: %(expected_state)s)"
+msgstr ""
+
+#: ../nova/compute/manager.py:362
+#, python-format
+msgid "instance %(nm)s: injecting file to %(plain_path)s"
+msgstr ""
+
+#: ../nova/compute/manager.py:372
+#, python-format
+msgid "instance %s: rescuing"
+msgstr ""
+
+#: ../nova/compute/manager.py:387
+#, python-format
+msgid "instance %s: unrescuing"
+msgstr ""
+
+#: ../nova/compute/manager.py:406
+#, python-format
+msgid "instance %s: pausing"
+msgstr ""
+
+#: ../nova/compute/manager.py:423
+#, python-format
+msgid "instance %s: unpausing"
+msgstr ""
+
+#: ../nova/compute/manager.py:440
+#, python-format
+msgid "instance %s: retrieving diagnostics"
+msgstr ""
+
+#: ../nova/compute/manager.py:453
+#, python-format
+msgid "instance %s: suspending"
+msgstr ""
+
+#: ../nova/compute/manager.py:472
+#, python-format
+msgid "instance %s: resuming"
+msgstr ""
+
+#: ../nova/compute/manager.py:491
+#, python-format
+msgid "instance %s: locking"
+msgstr ""
+
+#: ../nova/compute/manager.py:503
+#, python-format
+msgid "instance %s: unlocking"
+msgstr ""
+
+#: ../nova/compute/manager.py:513
+#, python-format
+msgid "instance %s: getting locked state"
+msgstr ""
+
+#: ../nova/compute/manager.py:526
+#, python-format
+msgid "instance %s: reset network"
+msgstr ""
+
+#: ../nova/compute/manager.py:535 ../nova/api/ec2/cloud.py:515
+#, python-format
+msgid "Get console output for instance %s"
+msgstr ""
+
+#: ../nova/compute/manager.py:543
+#, python-format
+msgid "instance %s: getting ajax console"
+msgstr ""
+
+#: ../nova/compute/manager.py:553
+#, python-format
+msgid ""
+"instance %(instance_id)s: attaching volume %(volume_id)s to %(mountpoint)s"
+msgstr ""
+
+#. pylint: disable=W0702
+#. NOTE(vish): The inline callback eats the exception info so we
+#. log the traceback here and reraise the same
+#. ecxception below.
+#: ../nova/compute/manager.py:569
+#, python-format
+msgid "instance %(instance_id)s: attach failed %(mountpoint)s, removing"
+msgstr ""
+
+#: ../nova/compute/manager.py:585
+#, python-format
+msgid ""
+"Detach volume %(volume_id)s from mountpoint %(mp)s on instance "
+"%(instance_id)s"
+msgstr ""
+
+#: ../nova/compute/manager.py:588
+#, python-format
+msgid "Detaching volume from unknown instance %s"
+msgstr ""
+
+#: ../nova/scheduler/simple.py:53
+#, python-format
+msgid "Host %s is not alive"
+msgstr ""
+
+#: ../nova/scheduler/simple.py:65
+msgid "All hosts have too many cores"
+msgstr ""
+
+#: ../nova/scheduler/simple.py:87
+#, python-format
+msgid "Host %s not available"
+msgstr ""
+
+#: ../nova/scheduler/simple.py:99
+msgid "All hosts have too many gigabytes"
+msgstr ""
+
+#: ../nova/scheduler/simple.py:119
+msgid "All hosts have too many networks"
+msgstr ""
+
+#: ../nova/volume/manager.py:85
+#, python-format
+msgid "Re-exporting %s volumes"
+msgstr ""
+
+#: ../nova/volume/manager.py:90
+#, python-format
+msgid "volume %s: skipping export"
+msgstr ""
+
+#: ../nova/volume/manager.py:96
+#, python-format
+msgid "volume %s: creating"
+msgstr ""
+
+#: ../nova/volume/manager.py:108
+#, python-format
+msgid "volume %(vol_name)s: creating lv of size %(vol_size)sG"
+msgstr ""
+
+#: ../nova/volume/manager.py:112
+#, python-format
+msgid "volume %s: creating export"
+msgstr ""
+
+#: ../nova/volume/manager.py:123
+#, python-format
+msgid "volume %s: created successfully"
+msgstr ""
+
+#: ../nova/volume/manager.py:131
+msgid "Volume is still attached"
+msgstr ""
+
+#: ../nova/volume/manager.py:133
+msgid "Volume is not local to this node"
+msgstr ""
+
+#: ../nova/volume/manager.py:136
+#, python-format
+msgid "volume %s: removing export"
+msgstr ""
+
+#: ../nova/volume/manager.py:138
+#, python-format
+msgid "volume %s: deleting"
+msgstr ""
+
+#: ../nova/volume/manager.py:147
+#, python-format
+msgid "volume %s: deleted successfully"
+msgstr ""
+
+#: ../nova/virt/xenapi/fake.py:74
+#, python-format
+msgid "%(text)s: _db_content => %(content)s"
+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 ""
+
+#: ../nova/virt/xenapi/fake.py:306
+#, python-format
+msgid "xenapi.fake does not have an implementation for %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/fake.py:341
+#, python-format
+msgid "Calling %(localname)s %(impl)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/fake.py:346
+#, python-format
+msgid "Calling getter %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/fake.py:406
+#, python-format
+msgid ""
+"xenapi.fake does not have an implementation for %s or it has been called "
+"with the wrong number of arguments"
+msgstr ""
+
+#: ../nova/tests/test_cloud.py:256
+msgid "Can't test instances without a real virtual env."
+msgstr ""
+
+#: ../nova/tests/test_cloud.py:268
+#, python-format
+msgid "Need to watch instance %s until it's running..."
+msgstr ""
+
+#: ../nova/virt/connection.py:73
+msgid "Failed to open connection to the hypervisor"
+msgstr ""
+
+#: ../nova/network/linux_net.py:187
+#, python-format
+msgid "Starting VLAN inteface %s"
+msgstr ""
+
+#: ../nova/network/linux_net.py:208
+#, python-format
+msgid "Starting Bridge interface for %s"
+msgstr ""
+
+#. pylint: disable=W0703
+#: ../nova/network/linux_net.py:314
+#, python-format
+msgid "Hupping dnsmasq threw %s"
+msgstr ""
+
+#: ../nova/network/linux_net.py:316
+#, python-format
+msgid "Pid %d is stale, relaunching dnsmasq"
+msgstr ""
+
+#. pylint: disable=W0703
+#: ../nova/network/linux_net.py:358
+#, python-format
+msgid "killing radvd threw %s"
+msgstr ""
+
+#: ../nova/network/linux_net.py:360
+#, python-format
+msgid "Pid %d is stale, relaunching radvd"
+msgstr ""
+
+#. pylint: disable=W0703
+#: ../nova/network/linux_net.py:449
+#, python-format
+msgid "Killing dnsmasq threw %s"
+msgstr ""
+
+#: ../nova/utils.py:58
+#, python-format
+msgid "Inner Exception: %s"
+msgstr ""
+
+#: ../nova/utils.py:59
+#, python-format
+msgid "Class %s cannot be found"
+msgstr ""
+
+#: ../nova/utils.py:118
+#, python-format
+msgid "Fetching %s"
+msgstr ""
+
+#: ../nova/utils.py:130
+#, python-format
+msgid "Running cmd (subprocess): %s"
+msgstr ""
+
+#: ../nova/utils.py:143 ../nova/utils.py:183
+#, python-format
+msgid "Result was %s"
+msgstr ""
+
+#: ../nova/utils.py:159
+#, python-format
+msgid "Running cmd (SSH): %s"
+msgstr ""
+
+#: ../nova/utils.py:217
+#, python-format
+msgid "debug in callback: %s"
+msgstr ""
+
+#: ../nova/utils.py:222
+#, python-format
+msgid "Running %s"
+msgstr ""
+
+#: ../nova/utils.py:262
+#, python-format
+msgid "Link Local address is not found.:%s"
+msgstr ""
+
+#: ../nova/utils.py:265
+#, python-format
+msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
+msgstr ""
+
+#: ../nova/utils.py:363
+#, python-format
+msgid "Invalid backend: %s"
+msgstr ""
+
+#: ../nova/utils.py:374
+#, python-format
+msgid "backend %s"
+msgstr ""
+
+#: ../nova/fakerabbit.py:49
+#, python-format
+msgid "(%(nm)s) publish (key: %(routing_key)s) %(message)s"
+msgstr ""
+
+#: ../nova/fakerabbit.py:54
+#, python-format
+msgid "Publishing to route %s"
+msgstr ""
+
+#: ../nova/fakerabbit.py:84
+#, python-format
+msgid "Declaring queue %s"
+msgstr ""
+
+#: ../nova/fakerabbit.py:90
+#, python-format
+msgid "Declaring exchange %s"
+msgstr ""
+
+#: ../nova/fakerabbit.py:96
+#, python-format
+msgid "Binding %(queue)s to %(exchange)s with key %(routing_key)s"
+msgstr ""
+
+#: ../nova/fakerabbit.py:121
+#, python-format
+msgid "Getting from %(queue)s: %(message)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:135 ../nova/virt/hyperv.py:171
+#, python-format
+msgid "Created VM %s..."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:138
+#, python-format
+msgid "Created VM %(instance_name)s as %(vm_ref)s."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:168
+#, python-format
+msgid "Creating VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:171
+#, python-format
+msgid "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:187
+#, python-format
+msgid "VBD not found in instance %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:197
+#, python-format
+msgid "Unable to unplug VBD %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:209
+#, python-format
+msgid "Unable to destroy VBD %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:224
+#, python-format
+msgid "Creating VIF for VM %(vm_ref)s, network %(network_ref)s."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:227
+#, python-format
+msgid "Created VIF %(vif_ref)s for VM %(vm_ref)s, network %(network_ref)s."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:246
+#, python-format
+msgid ""
+"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s) on "
+"%(sr_ref)s."
+msgstr ""
+
+#. TODO(sirp): Add quiesce and VSS locking support when Windows support
+#. is added
+#: ../nova/virt/xenapi/vm_utils.py:258
+#, python-format
+msgid "Snapshotting VM %(vm_ref)s with label '%(label)s'..."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:272
+#, python-format
+msgid "Created snapshot %(template_vm_ref)s from VM %(vm_ref)s."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:286
+#, python-format
+msgid "Asking xapi to upload %(vdi_uuids)s as ID %(image_id)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:327
+#, python-format
+msgid "Size for image %(image)s:%(virtual_size)d"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:332
+#, python-format
+msgid "Glance image %s"
+msgstr ""
+
+#. we need to invoke a plugin for copying VDI's
+#. content into proper path
+#: ../nova/virt/xenapi/vm_utils.py:342
+#, python-format
+msgid "Copying VDI %s to /boot/guest on dom0"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:352
+#, python-format
+msgid "Kernel/Ramdisk VDI %s destroyed"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:361
+#, python-format
+msgid "Asking xapi to fetch %(url)s as %(access)s"
+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 ""
+
+#: ../nova/virt/xenapi/vm_utils.py:397
+#, python-format
+msgid "PV Kernel in VDI:%s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:405
+#, python-format
+msgid "Running pygrub against %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:411
+#, python-format
+msgid "Found Xen kernel %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:413
+msgid "No Xen kernel found. Booting HVM."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:425 ../nova/virt/hyperv.py:431
+#, python-format
+msgid "duplicate name found: %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:442
+#, python-format
+msgid "VDI %s is still available"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:463
+#, python-format
+msgid "(VM_UTILS) xenserver vm state -> |%s|"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:465
+#, python-format
+msgid "(VM_UTILS) xenapi power_state -> |%s|"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:525
+#, python-format
+msgid "VHD %(vdi_uuid)s has parent %(parent_ref)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:542
+#, python-format
+msgid "Re-scanning SR %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:567
+#, python-format
+msgid ""
+"VHD coalesce attempts exceeded (%(counter)d > %(max_attempts)d), giving up..."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:574
+#, python-format
+msgid ""
+"Parent %(parent_uuid)s doesn't match original parent "
+"%(original_parent_uuid)s, waiting for coalesce..."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:590
+#, python-format
+msgid "No VDIs found for VM %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:594
+#, python-format
+msgid "Unexpected number of VDIs (%(num_vdis)s) found for VM %(vm_ref)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:653
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:188
+#, python-format
+msgid "Creating VBD for VDI %s ... "
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:655
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:190
+#, python-format
+msgid "Creating VBD for VDI %s done."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:657
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:192
+#, python-format
+msgid "Plugging VBD %s ... "
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:659
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:194
+#, python-format
+msgid "Plugging VBD %s done."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:661
+#, python-format
+msgid "VBD %(vbd)s plugged as %(orig_dev)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:664
+#, python-format
+msgid "VBD %(vbd)s plugged into wrong dev, remapping to %(dev)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:668
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:197
+#, python-format
+msgid "Destroying VBD for VDI %s ... "
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:671
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:200
+#, python-format
+msgid "Destroying VBD for VDI %s done."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:683
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:211
+msgid "VBD.unplug successful first time."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:688
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:216
+msgid "VBD.unplug rejected: retrying..."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:692
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:220
+msgid "VBD.unplug successful eventually."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:695
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:223
+#, python-format
+msgid "Ignoring XenAPI.Failure in VBD.unplug: %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:704
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:66
+#, python-format
+msgid "Ignoring XenAPI.Failure %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:735
+#, python-format
+msgid ""
+"Writing partition table %(primary_first)d %(primary_last)d to %(dest)s..."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:747
+#, python-format
+msgid "Writing partition table %s done."
+msgstr ""
+
+#: ../nova/tests/test_rpc.py:89
+#, python-format
+msgid "Nested received %(queue)s, %(value)s"
+msgstr ""
+
+#: ../nova/tests/test_rpc.py:95
+#, python-format
+msgid "Nested return %s"
+msgstr ""
+
+#: ../nova/tests/test_rpc.py:120 ../nova/tests/test_rpc.py:126
+#, python-format
+msgid "Received %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:44
+msgid "Use of empty request context is deprecated"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:133
+#, python-format
+msgid "No service for id %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:251
+#, python-format
+msgid "No service for %(host)s, %(binary)s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:592
+msgid "No fixed ips defined"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:608
+#, python-format
+msgid "No floating ip for address %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:629
+#, python-format
+msgid "No address for instance %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:961
+#, python-format
+msgid "no keypair for user %(user_id)s, name %(name)s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1076 ../nova/db/sqlalchemy/api.py:1156
+#, python-format
+msgid "No network for id %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1086
+msgid "No networks defined"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1115
+#, python-format
+msgid "No network for bridge %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1129 ../nova/db/sqlalchemy/api.py:1142
+#, python-format
+msgid "No network for instance %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1277
+#, python-format
+msgid "Token %s does not exist"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1302
+#, python-format
+msgid "No quota for project_id %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1455 ../nova/db/sqlalchemy/api.py:1501
+#: ../nova/api/ec2/__init__.py:323
+#, python-format
+msgid "Volume %s not found"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1514
+#, python-format
+msgid "No export device found for volume %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1527
+#, python-format
+msgid "No target id found for volume %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1572
+#, python-format
+msgid "No security group with id %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1589
+#, python-format
+msgid "No security group named %(group_name)s for project: %(project_id)s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1682
+#, python-format
+msgid "No secuity group rule with id %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1756
+#, python-format
+msgid "No user for id %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1772
+#, python-format
+msgid "No user for access key %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1834
+#, python-format
+msgid "No project with id %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1979
+#, python-format
+msgid "No console pool with id %(pool_id)s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1996
+#, python-format
+msgid ""
+"No console pool of type %(console_type)s for compute host %(compute_host)s "
+"on proxy host %(host)s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:2035
+#, python-format
+msgid "No console for instance %(instance_id)s in pool %(pool_id)s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:2057
+#, python-format
+msgid "on instance %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:2058
+#, python-format
+msgid "No console with id %(console_id)s %(idesc)s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:2078 ../nova/db/sqlalchemy/api.py:2097
+#, python-format
+msgid "No zone with id %(zone_id)s"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:160
+#, python-format
+msgid "Checking state of %s"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:165
+#, python-format
+msgid "Current state of %(name)s was %(state)s."
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:183
+#, python-format
+msgid "Connecting to libvirt: %s"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:196
+msgid "Connection to libvirt broke"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:258
+#, python-format
+msgid "instance %(instance_name)s: deleting instance files %(target)s"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:283
+#, python-format
+msgid "Invalid device path %s"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:313
+#, python-format
+msgid "No disk at %s"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:320
+msgid "Instance snapshotting is not supported for libvirtat this time"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:336
+#, python-format
+msgid "instance %s: rebooted"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:339
+#, python-format
+msgid "_wait_for_reboot failed: %s"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:382
+#, python-format
+msgid "instance %s: rescued"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:385
+#, python-format
+msgid "_wait_for_rescue failed: %s"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:411
+#, python-format
+msgid "instance %s: is running"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:422
+#, python-format
+msgid "instance %s: booted"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:425 ../nova/virt/xenapi/vmops.py:186
+#, python-format
+msgid "instance %s: failed to boot"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:436
+#, python-format
+msgid "virsh said: %r"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:440
+msgid "cool, it's a device"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:448
+#, python-format
+msgid "data: %(data)r, fpath: %(fpath)r"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:456
+#, python-format
+msgid "Contents of file %(fpath)s: %(contents)r"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:489
+msgid "Unable to find an open port"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:563
+#, python-format
+msgid "instance %s: Creating image"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:646
+#, python-format
+msgid "instance %(inst_name)s: injecting key into image %(img_id)s"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:649
+#, python-format
+msgid "instance %(inst_name)s: injecting net into image %(img_id)s"
+msgstr ""
+
+#. This could be a windows image, or a vmdk format disk
+#: ../nova/virt/libvirt_conn.py:657
+#, python-format
+msgid ""
+"instance %(inst_name)s: ignoring error injecting data into image %(img_id)s "
+"(%(e)s)"
+msgstr ""
+
+#. TODO(termie): cache?
+#: ../nova/virt/libvirt_conn.py:665
+#, python-format
+msgid "instance %s: starting toXML method"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:732
+#, python-format
+msgid "instance %s: finished toXML method"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:751
+msgid "diagnostics are not supported for libvirt"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:1225
+#, python-format
+msgid "Attempted to unfilter instance %s which is not filtered"
+msgstr ""
+
+#: ../nova/api/ec2/metadatarequesthandler.py:76
+#, python-format
+msgid "Failed to get metadata for ip: %s"
+msgstr ""
+
+#: ../nova/auth/fakeldap.py:33
+msgid "Attempted to instantiate singleton"
+msgstr ""
+
+#: ../nova/network/api.py:39
+#, python-format
+msgid "Quota exceeeded for %s, tried to allocate address"
+msgstr ""
+
+#: ../nova/network/api.py:42
+msgid "Address quota exceeded. You cannot allocate any more addresses"
+msgstr ""
+
+#: ../nova/tests/test_volume.py:162
+#, python-format
+msgid "Target %s allocated"
+msgstr ""
+
+#: ../nova/virt/images.py:70
+#, python-format
+msgid "Finished retreving %(url)s -- placed in %(path)s"
+msgstr ""
+
+#: ../nova/scheduler/driver.py:66
+msgid "Must implement a fallback schedule"
+msgstr ""
+
+#: ../nova/console/manager.py:70
+msgid "Adding console"
+msgstr ""
+
+#: ../nova/console/manager.py:90
+#, python-format
+msgid "Tried to remove non-existant console %(console_id)s."
+msgstr ""
+
+#: ../nova/api/direct.py:149
+msgid "not available"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:62
+#, python-format
+msgid "The key_pair %s already exists"
+msgstr ""
+
+#. TODO(vish): Do this with M2Crypto instead
+#: ../nova/api/ec2/cloud.py:118
+#, python-format
+msgid "Generating root CA: %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:303
+#, python-format
+msgid "Create key pair %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:311
+#, python-format
+msgid "Delete key pair %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:386
+#, python-format
+msgid "%s is not a valid ipProtocol"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:390
+msgid "Invalid port range"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:421
+#, python-format
+msgid "Revoke security group ingress %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:430 ../nova/api/ec2/cloud.py:459
+msgid "Not enough parameters to build a valid rule."
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:443
+msgid "No rule for the specified parameters."
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:450
+#, python-format
+msgid "Authorize security group ingress %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:464
+#, python-format
+msgid "This rule already exists in group %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:492
+#, python-format
+msgid "Create Security Group %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:495
+#, python-format
+msgid "group %s already exists"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:507
+#, python-format
+msgid "Delete security group %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:584
+#, python-format
+msgid "Create volume of %s GB"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:612
+#, python-format
+msgid "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:629
+#, python-format
+msgid "Detach volume %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:761
+msgid "Allocate address"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:766
+#, python-format
+msgid "Release address %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:771
+#, python-format
+msgid "Associate address %(public_ip)s to instance %(instance_id)s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:780
+#, python-format
+msgid "Disassociate address %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:807
+msgid "Going to start terminating instances"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:815
+#, python-format
+msgid "Reboot instance %r"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:867
+#, python-format
+msgid "De-registering image %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:875
+#, python-format
+msgid "Registered image %(image_location)s with id %(image_id)s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:882 ../nova/api/ec2/cloud.py:900
+#, python-format
+msgid "attribute not supported: %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:890
+#, python-format
+msgid "invalid id: %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:903
+msgid "user or group not specified"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:905
+msgid "only group \"all\" is supported"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:907
+msgid "operation_type must be add or remove"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:908
+#, python-format
+msgid "Updating image %s publicity"
+msgstr ""
+
+#: ../bin/nova-api.py:52
+#, python-format
+msgid "Using paste.deploy config at: %s"
+msgstr ""
+
+#: ../bin/nova-api.py:57
+#, python-format
+msgid "No paste configuration for app: %s"
+msgstr ""
+
+#: ../bin/nova-api.py:59
+#, python-format
+msgid ""
+"App Config: %(api)s\n"
+"%(config)r"
+msgstr ""
+
+#: ../bin/nova-api.py:64
+#, python-format
+msgid "Running %s API"
+msgstr ""
+
+#: ../bin/nova-api.py:69
+#, python-format
+msgid "No known API applications configured in %s."
+msgstr ""
+
+#: ../bin/nova-api.py:83
+#, python-format
+msgid "Starting nova-api node (version %s)"
+msgstr ""
+
+#: ../bin/nova-api.py:89
+#, python-format
+msgid "No paste configuration found for: %s"
+msgstr ""
+
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:84
+#, python-format
+msgid "Argument %(key)s value %(value)s is too short."
+msgstr ""
+
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:89
+#, python-format
+msgid "Argument %(key)s value %(value)s contains invalid characters."
+msgstr ""
+
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:94
+#, python-format
+msgid "Argument %(key)s value %(value)s starts with a hyphen."
+msgstr ""
+
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:102
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:130
+#, python-format
+msgid "Argument %s is required."
+msgstr ""
+
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:117
+#, python-format
+msgid ""
+"Argument %(key)s may not take value %(value)s. Valid values are ['true', "
+"'false']."
+msgstr ""
+
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:163
+#, python-format
+msgid ""
+"Created VDI %(vdi_ref)s (%(label)s, %(size)s, %(read_only)s) on %(sr_ref)s."
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:67
+#, python-format
+msgid "Attempted to create non-unique name %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:73
+#, python-format
+msgid "instance %(name)s: not enough free memory"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:148
+#, python-format
+msgid "Starting VM %s..."
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:151
+#, python-format
+msgid "Spawning VM %(instance_name)s created %(vm_ref)s."
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:162
+#, python-format
+msgid "Invalid value for onset_files: '%s'"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:167
+#, python-format
+msgid "Injecting file path: '%s'"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:180
+#, python-format
+msgid "Instance %s: booted"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:232
+#, python-format
+msgid "Instance not present %s"
+msgstr ""
+
+#. TODO(sirp): Add quiesce and VSS locking support when Windows support
+#. is added
+#: ../nova/virt/xenapi/vmops.py:261
+#, python-format
+msgid "Starting snapshot for VM %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:269
+#, python-format
+msgid "Unable to Snapshot %(vm_ref)s: %(exc)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:280
+#, python-format
+msgid "Finished snapshot and upload for VM %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:356
+#, python-format
+msgid "VM %(vm)s already halted, skipping shutdown..."
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:389
+msgid "Removing kernel/ramdisk files"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:399
+msgid "kernel/ramdisk files removed"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:561
+#, python-format
+msgid ""
+"TIMEOUT: The call to %(method)s timed out. VM id=%(instance_id)s; "
+"args=%(strargs)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:564
+#, python-format
+msgid ""
+"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. VM "
+"id=%(instance_id)s; args=%(strargs)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:569
+#, python-format
+msgid ""
+"The call to %(method)s returned an error: %(e)s. VM id=%(instance_id)s; "
+"args=%(strargs)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:760
+#, python-format
+msgid "OpenSSL error: %s"
+msgstr ""
+
+#: ../nova/tests/test_compute.py:148
+#, python-format
+msgid "Running instances: %s"
+msgstr ""
+
+#: ../nova/tests/test_compute.py:154
+#, python-format
+msgid "After terminating instances: %s"
+msgstr ""
+
+#: ../nova/cloudpipe/pipelib.py:45
+msgid "Template for script to run on cloudpipe instance boot"
+msgstr ""
+
+#: ../nova/cloudpipe/pipelib.py:48
+msgid "Network to push into openvpn config"
+msgstr ""
+
+#: ../nova/cloudpipe/pipelib.py:51
+msgid "Netmask to push into openvpn config"
+msgstr ""
+
+#: ../nova/cloudpipe/pipelib.py:97
+#, python-format
+msgid "Launching VPN for %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/migration.py:35
+msgid "python-migrate is not installed. Exiting."
+msgstr ""
+
+#: ../nova/image/s3.py:99
+#, python-format
+msgid "Image %s could not be found"
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:121
+msgid "Too many failed authentications."
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:131
+#, python-format
+msgid ""
+"Access key %(access_key)s has had %(failures)d failed authentications and "
+"will be locked out for %(lock_mins)d minutes."
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:169 ../nova/objectstore/handler.py:140
+#, python-format
+msgid "Authentication Failure: %s"
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:182
+#, python-format
+msgid "Authenticated Request For %(uname)s:%(pname)s)"
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:207
+#, python-format
+msgid "action: %s"
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:209
+#, python-format
+msgid "arg: %(key)s\t\tval: %(value)s"
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:281
+#, python-format
+msgid ""
+"Unauthorized request for controller=%(controller)s and action=%(action)s"
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:314
+#, python-format
+msgid "InstanceNotFound raised: %s"
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:320
+#, python-format
+msgid "VolumeNotFound raised: %s"
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:326
+#, python-format
+msgid "NotFound raised: %s"
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:329
+#, python-format
+msgid "ApiError raised: %s"
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:338
+#, python-format
+msgid "Unexpected error raised: %s"
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:343
+msgid "An unknown error has occurred. Please try your request again."
+msgstr ""
+
+#: ../nova/auth/dbdriver.py:84
+#, python-format
+msgid "User %s already exists"
+msgstr ""
+
+#: ../nova/auth/dbdriver.py:106 ../nova/auth/ldapdriver.py:232
+#, python-format
+msgid "Project can't be created because manager %s doesn't exist"
+msgstr ""
+
+#: ../nova/auth/dbdriver.py:122 ../nova/auth/ldapdriver.py:243
+#, python-format
+msgid "Project can't be created because user %s doesn't exist"
+msgstr ""
+
+#: ../nova/auth/dbdriver.py:135 ../nova/auth/ldapdriver.py:229
+#, python-format
+msgid "Project can't be created because project %s already exists"
+msgstr ""
+
+#: ../nova/auth/dbdriver.py:157 ../nova/auth/ldapdriver.py:268
+#, python-format
+msgid "Project can't be modified because manager %s doesn't exist"
+msgstr ""
+
+#: ../nova/auth/dbdriver.py:245
+#, python-format
+msgid "User \"%s\" not found"
+msgstr ""
+
+#: ../nova/auth/dbdriver.py:248
+#, python-format
+msgid "Project \"%s\" not found"
+msgstr ""
+
+#: ../nova/virt/xenapi_conn.py:129
+msgid ""
+"Must specify xenapi_connection_url, xenapi_connection_username (optionally), "
+"and xenapi_connection_password to use connection_type=xenapi"
+msgstr ""
+
+#: ../nova/virt/xenapi_conn.py:311
+#, python-format
+msgid "Task [%(name)s] %(task)s status: success %(result)s"
+msgstr ""
+
+#: ../nova/virt/xenapi_conn.py:317
+#, python-format
+msgid "Task [%(name)s] %(task)s status: %(status)s %(error_info)s"
+msgstr ""
+
+#: ../nova/virt/xenapi_conn.py:331 ../nova/virt/xenapi_conn.py:344
+#, python-format
+msgid "Got exception: %s"
+msgstr ""
+
+#: ../nova/compute/monitor.py:259
+#, python-format
+msgid "updating %s..."
+msgstr ""
+
+#: ../nova/compute/monitor.py:289
+msgid "unexpected error during update"
+msgstr ""
+
+#: ../nova/compute/monitor.py:356
+#, python-format
+msgid "Cannot get blockstats for \"%(disk)s\" on \"%(iid)s\""
+msgstr ""
+
+#: ../nova/compute/monitor.py:379
+#, python-format
+msgid "Cannot get ifstats for \"%(interface)s\" on \"%(iid)s\""
+msgstr ""
+
+#: ../nova/compute/monitor.py:414
+msgid "unexpected exception getting connection"
+msgstr ""
+
+#: ../nova/compute/monitor.py:429
+#, python-format
+msgid "Found instance: %s"
+msgstr ""
+
+#: ../nova/volume/san.py:67
+#, python-format
+msgid "Could not find iSCSI export for volume %s"
+msgstr ""
+
+#: ../nova/api/ec2/apirequest.py:100
+#, python-format
+msgid ""
+"Unsupported API request: controller = %(controller)s, action = %(action)s"
+msgstr ""
+
+#: ../nova/api/openstack/__init__.py:55
+#, python-format
+msgid "Caught error: %s"
+msgstr ""
+
+#: ../nova/api/openstack/__init__.py:76
+msgid "Including admin operations in API."
+msgstr ""
+
+#: ../nova/console/xvp.py:99
+msgid "Rebuilding xvp conf"
+msgstr ""
+
+#: ../nova/console/xvp.py:116
+#, python-format
+msgid "Re-wrote %s"
+msgstr ""
+
+#: ../nova/console/xvp.py:121
+msgid "Stopping xvp"
+msgstr ""
+
+#: ../nova/console/xvp.py:134
+msgid "Starting xvp"
+msgstr ""
+
+#: ../nova/console/xvp.py:141
+#, python-format
+msgid "Error starting xvp: %s"
+msgstr ""
+
+#: ../nova/console/xvp.py:144
+msgid "Restarting xvp"
+msgstr ""
+
+#: ../nova/console/xvp.py:146
+msgid "xvp not running..."
+msgstr ""
+
+#: ../bin/nova-manage.py:272
+msgid ""
+"The above error may show that the database has not been created.\n"
+"Please create a database using nova-manage sync db before running this "
+"command."
+msgstr ""
+
+#: ../bin/nova-manage.py:426
+msgid ""
+"No more networks available. If this is a new installation, you need\n"
+"to call something like this:\n"
+"\n"
+" nova-manage network create 10.0.0.0/8 10 64\n"
+"\n"
+msgstr ""
+
+#: ../bin/nova-manage.py:431
+msgid ""
+"The above error may show that the certificate db has not been created.\n"
+"Please create a database by running a nova-api server on this host."
+msgstr ""
+
+#: ../bin/nova-manage.py:447 ../bin/nova-manage.py:536
+msgid "network"
+msgstr ""
+
+#: ../bin/nova-manage.py:448
+msgid "IP address"
+msgstr ""
+
+#: ../bin/nova-manage.py:449
+msgid "MAC address"
+msgstr ""
+
+#: ../bin/nova-manage.py:450
+msgid "hostname"
+msgstr ""
+
+#: ../bin/nova-manage.py:451
+msgid "host"
+msgstr ""
+
+#: ../bin/nova-manage.py:537
+msgid "netmask"
+msgstr ""
+
+#: ../bin/nova-manage.py:538
+msgid "start address"
+msgstr ""
+
+#: ../nova/virt/disk.py:69
+#, python-format
+msgid "Failed to load partition: %s"
+msgstr ""
+
+#: ../nova/virt/disk.py:91
+#, python-format
+msgid "Failed to mount filesystem: %s"
+msgstr ""
+
+#: ../nova/virt/disk.py:124
+#, python-format
+msgid "nbd device %s did not show up"
+msgstr ""
+
+#: ../nova/virt/disk.py:128
+#, python-format
+msgid "Could not attach image to loopback: %s"
+msgstr ""
+
+#: ../nova/virt/disk.py:151
+msgid "No free nbd devices"
+msgstr ""
+
+#: ../doc/ext/nova_todo.py:46
+#, python-format
+msgid "%(filename)s, line %(line_info)d"
+msgstr ""
+
+#. FIXME(chiradeep): implement this
+#: ../nova/virt/hyperv.py:118
+msgid "In init host"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:131
+#, python-format
+msgid "Attempt to create duplicate vm %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:148
+#, python-format
+msgid "Starting VM %s "
+msgstr ""
+
+#: ../nova/virt/hyperv.py:150
+#, python-format
+msgid "Started VM %s "
+msgstr ""
+
+#: ../nova/virt/hyperv.py:152
+#, python-format
+msgid "spawn vm failed: %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:169
+#, python-format
+msgid "Failed to create VM %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:188
+#, python-format
+msgid "Set memory for vm %s..."
+msgstr ""
+
+#: ../nova/virt/hyperv.py:198
+#, python-format
+msgid "Set vcpus for vm %s..."
+msgstr ""
+
+#: ../nova/virt/hyperv.py:202
+#, python-format
+msgid "Creating disk for %(vm_name)s by attaching disk file %(vhdfile)s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:227
+#, python-format
+msgid "Failed to add diskdrive to VM %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:230
+#, python-format
+msgid "New disk drive path is %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:247
+#, python-format
+msgid "Failed to add vhd file to VM %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:249
+#, python-format
+msgid "Created disk for %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:253
+#, python-format
+msgid "Creating nic for %s "
+msgstr ""
+
+#: ../nova/virt/hyperv.py:272
+msgid "Failed creating a port on the external vswitch"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:273
+#, python-format
+msgid "Failed creating port for %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:276
+#, python-format
+msgid "Created switch port %(vm_name)s on switch %(ext_path)s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:286
+#, python-format
+msgid "Failed to add nic to VM %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:288
+#, python-format
+msgid "Created nic for %s "
+msgstr ""
+
+#: ../nova/virt/hyperv.py:321
+#, python-format
+msgid "WMI job failed: %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:325
+#, python-format
+msgid "WMI job succeeded: %(desc)s, Elapsed=%(elap)s "
+msgstr ""
+
+#: ../nova/virt/hyperv.py:361
+#, python-format
+msgid "Got request to destroy vm %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:386
+#, python-format
+msgid "Failed to destroy vm %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:393
+#, python-format
+msgid "Del: disk %(vhdfile)s vm %(instance_name)s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:415
+#, python-format
+msgid ""
+"Got Info for vm %(instance_id)s: state=%(state)s, mem=%(memusage)s, "
+"num_cpu=%(numprocs)s, cpu_time=%(uptime)s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:451
+#, python-format
+msgid "Successfully changed vm state of %(vm_name)s to %(req_state)s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:454
+#, python-format
+msgid "Failed to change vm state of %(vm_name)s to %(req_state)s"
+msgstr ""
+
+#: ../nova/compute/api.py:71
+#, python-format
+msgid "Instance %d was not found in get_network_topic"
+msgstr ""
+
+#: ../nova/compute/api.py:77
+#, python-format
+msgid "Instance %d has no host"
+msgstr ""
+
+#: ../nova/compute/api.py:97
+#, python-format
+msgid "Quota exceeeded for %(pid)s, tried to run %(min_count)s instances"
+msgstr ""
+
+#: ../nova/compute/api.py:99
+#, python-format
+msgid ""
+"Instance quota exceeded. You can only run %s more instances of this type."
+msgstr ""
+
+#: ../nova/compute/api.py:112
+msgid "Creating a raw instance"
+msgstr ""
+
+#: ../nova/compute/api.py:160
+#, python-format
+msgid "Going to run %s instances..."
+msgstr ""
+
+#: ../nova/compute/api.py:187
+#, python-format
+msgid "Casting to scheduler for %(pid)s/%(uid)s's instance %(instance_id)s"
+msgstr ""
+
+#: ../nova/compute/api.py:292
+#, python-format
+msgid "Going to try to terminate %s"
+msgstr ""
+
+#: ../nova/compute/api.py:296
+#, python-format
+msgid "Instance %d was not found during terminate"
+msgstr ""
+
+#: ../nova/compute/api.py:301
+#, python-format
+msgid "Instance %d is already being terminated"
+msgstr ""
+
+#: ../nova/compute/api.py:481
+#, python-format
+msgid "Invalid device specified: %s. Example device: /dev/vdb"
+msgstr ""
+
+#: ../nova/compute/api.py:496
+msgid "Volume isn't attached to anything!"
+msgstr ""
+
+#: ../nova/rpc.py:98
+#, python-format
+msgid ""
+"AMQP server on %(fl_host)s:%(fl_port)d is unreachable. Trying again in "
+"%(fl_intv)d seconds."
+msgstr ""
+
+#: ../nova/rpc.py:103
+#, python-format
+msgid "Unable to connect to AMQP server after %d tries. Shutting down."
+msgstr ""
+
+#: ../nova/rpc.py:122
+msgid "Reconnected to queue"
+msgstr ""
+
+#: ../nova/rpc.py:129
+msgid "Failed to fetch message from queue"
+msgstr ""
+
+#: ../nova/rpc.py:159
+#, python-format
+msgid "Initing the Adapter Consumer for %s"
+msgstr ""
+
+#: ../nova/rpc.py:178
+#, python-format
+msgid "received %s"
+msgstr ""
+
+#. NOTE(vish): we may not want to ack here, but that means that bad
+#. messages stay in the queue indefinitely, so for now
+#. we just log the message and send an error string
+#. back to the caller
+#: ../nova/rpc.py:191
+#, python-format
+msgid "no method for message: %s"
+msgstr ""
+
+#: ../nova/rpc.py:192
+#, python-format
+msgid "No method for message: %s"
+msgstr ""
+
+#: ../nova/rpc.py:253
+#, python-format
+msgid "Returning exception %s to caller"
+msgstr ""
+
+#: ../nova/rpc.py:294
+#, python-format
+msgid "unpacked context: %s"
+msgstr ""
+
+#: ../nova/rpc.py:313
+msgid "Making asynchronous call..."
+msgstr ""
+
+#: ../nova/rpc.py:316
+#, python-format
+msgid "MSG_ID is %s"
+msgstr ""
+
+#: ../nova/rpc.py:354
+msgid "Making asynchronous cast..."
+msgstr ""
+
+#: ../nova/rpc.py:364
+#, python-format
+msgid "response %s"
+msgstr ""
+
+#: ../nova/rpc.py:373
+#, python-format
+msgid "topic is %s"
+msgstr ""
+
+#: ../nova/rpc.py:374
+#, python-format
+msgid "message %s"
+msgstr ""
+
+#: ../nova/volume/driver.py:78
+#, python-format
+msgid "Recovering from a failed execute. Try number %s"
+msgstr ""
+
+#: ../nova/volume/driver.py:87
+#, python-format
+msgid "volume group %s doesn't exist"
+msgstr ""
+
+#: ../nova/volume/driver.py:220
+#, python-format
+msgid "FAKE AOE: %s"
+msgstr ""
+
+#: ../nova/volume/driver.py:233
+msgid "Skipping ensure_export. No iscsi_target "
+msgstr ""
+
+#: ../nova/volume/driver.py:279 ../nova/volume/driver.py:288
+msgid "Skipping remove_export. No iscsi_target "
+msgstr ""
+
+#: ../nova/volume/driver.py:347
+#, python-format
+msgid "FAKE ISCSI: %s"
+msgstr ""
+
+#: ../nova/volume/driver.py:359
+#, python-format
+msgid "rbd has no pool %s"
+msgstr ""
+
+#: ../nova/volume/driver.py:414
+#, python-format
+msgid "Sheepdog is not working: %s"
+msgstr ""
+
+#: ../nova/volume/driver.py:416
+msgid "Sheepdog is not working"
+msgstr ""
+
+#: ../nova/wsgi.py:68
+#, python-format
+msgid "Starting %(arg0)s on %(host)s:%(port)s"
+msgstr ""
+
+#: ../nova/wsgi.py:147
+msgid "You must implement __call__"
+msgstr ""
+
+#: ../bin/nova-instancemonitor.py:55
+msgid "Starting instance monitor"
+msgstr ""
+
+#: ../bin/nova-dhcpbridge.py:58
+msgid "leasing ip"
+msgstr ""
+
+#: ../bin/nova-dhcpbridge.py:73
+msgid "Adopted old lease or got a change of mac/hostname"
+msgstr ""
+
+#: ../bin/nova-dhcpbridge.py:80
+msgid "releasing ip"
+msgstr ""
+
+#: ../bin/nova-dhcpbridge.py:123
+#, python-format
+msgid ""
+"Called %(action)s for mac %(mac)s with ip %(ip)s and hostname %(hostname)s "
+"on interface %(interface)s"
+msgstr ""
+
+#: ../nova/virt/fake.py:239
+#, python-format
+msgid "Instance %s Not Found"
+msgstr ""
+
+#: ../nova/network/manager.py:153
+#, python-format
+msgid "Dissassociated %s stale fixed ip(s)"
+msgstr ""
+
+#: ../nova/network/manager.py:157
+msgid "setting network host"
+msgstr ""
+
+#: ../nova/network/manager.py:212
+#, python-format
+msgid "Leasing IP %s"
+msgstr ""
+
+#: ../nova/network/manager.py:216
+#, python-format
+msgid "IP %s leased that isn't associated"
+msgstr ""
+
+#: ../nova/network/manager.py:220
+#, python-format
+msgid "IP %(address)s leased to bad mac %(inst_addr)s vs %(mac)s"
+msgstr ""
+
+#: ../nova/network/manager.py:228
+#, python-format
+msgid "IP %s leased that was already deallocated"
+msgstr ""
+
+#: ../nova/network/manager.py:233
+#, python-format
+msgid "Releasing IP %s"
+msgstr ""
+
+#: ../nova/network/manager.py:237
+#, python-format
+msgid "IP %s released that isn't associated"
+msgstr ""
+
+#: ../nova/network/manager.py:241
+#, python-format
+msgid "IP %(address)s released from bad mac %(inst_addr)s vs %(mac)s"
+msgstr ""
+
+#: ../nova/network/manager.py:244
+#, python-format
+msgid "IP %s released that was not leased"
+msgstr ""
+
+#: ../nova/network/manager.py:519
+msgid ""
+"The sum between the number of networks and the vlan start cannot be greater "
+"than 4094"
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:57
+#, python-format
+msgid "Introducing %s..."
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:74
+#, python-format
+msgid "Introduced %(label)s as %(sr_ref)s."
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:78
+msgid "Unable to create Storage Repository"
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:90
+#, python-format
+msgid "Unable to find SR from VBD %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:96
+#, python-format
+msgid "Forgetting SR %s ... "
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:101
+#, python-format
+msgid "Ignoring exception %(exc)s when getting PBDs for %(sr_ref)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:107
+#, python-format
+msgid "Ignoring exception %(exc)s when unplugging PBD %(pbd)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:111
+#, python-format
+msgid "Forgetting SR %s done."
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:113
+#, python-format
+msgid "Ignoring exception %(exc)s when forgetting SR %(sr_ref)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:123
+#, python-format
+msgid "Unable to introduce VDI on SR %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:128
+#, python-format
+msgid "Unable to get record of VDI %s on"
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:146
+#, python-format
+msgid "Unable to introduce VDI for SR %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:175
+#, python-format
+msgid "Unable to obtain target information %(device_path)s, %(mountpoint)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:197
+#, python-format
+msgid "Mountpoint cannot be translated: %s"
+msgstr ""
+
+#: ../nova/objectstore/image.py:262
+#, python-format
+msgid "Failed to decrypt private key: %s"
+msgstr ""
+
+#: ../nova/objectstore/image.py:269
+#, python-format
+msgid "Failed to decrypt initialization vector: %s"
+msgstr ""
+
+#: ../nova/objectstore/image.py:277
+#, python-format
+msgid "Failed to decrypt image file %(image_file)s: %(err)s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:106
+#, python-format
+msgid "Unknown S3 value type %r"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:137
+msgid "Authenticated request"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:182
+msgid "List of buckets requested"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:209
+#, python-format
+msgid "List keys for bucket %s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:217
+#, python-format
+msgid "Unauthorized attempt to access bucket %s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:235
+#, python-format
+msgid "Creating bucket %s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:245
+#, python-format
+msgid "Deleting bucket %s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:249
+#, python-format
+msgid "Unauthorized attempt to delete bucket %s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:273
+#, python-format
+msgid "Getting object: %(bname)s / %(nm)s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:276
+#, python-format
+msgid "Unauthorized attempt to get object %(nm)s from bucket %(bname)s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:296
+#, python-format
+msgid "Putting object: %(bname)s / %(nm)s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:299
+#, python-format
+msgid "Unauthorized attempt to upload object %(nm)s to bucket %(bname)s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:318
+#, python-format
+msgid "Deleting object: %(bname)s / %(nm)s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:322
+#, python-format
+msgid "Unauthorized attempt to delete object %(nm)s from bucket %(bname)s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:396
+#, python-format
+msgid "Not authorized to upload image: invalid directory %s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:404
+#, python-format
+msgid "Not authorized to upload image: unauthorized bucket %s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:409
+#, python-format
+msgid "Starting image upload: %s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:423
+#, python-format
+msgid "Not authorized to update attributes of image %s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:431
+#, python-format
+msgid "Toggling publicity flag of image %(image_id)s %(newstatus)r"
+msgstr ""
+
+#. other attributes imply update
+#: ../nova/objectstore/handler.py:436
+#, python-format
+msgid "Updating user fields on image %s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:450
+#, python-format
+msgid "Unauthorized attempt to delete image %s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:455
+#, python-format
+msgid "Deleted image: %s"
+msgstr ""
+
+#: ../nova/auth/manager.py:259
+#, python-format
+msgid "Looking up user: %r"
+msgstr ""
+
+#: ../nova/auth/manager.py:263
+#, python-format
+msgid "Failed authorization for access key %s"
+msgstr ""
+
+#: ../nova/auth/manager.py:264
+#, python-format
+msgid "No user found for access key %s"
+msgstr ""
+
+#: ../nova/auth/manager.py:270
+#, python-format
+msgid "Using project name = user name (%s)"
+msgstr ""
+
+#: ../nova/auth/manager.py:277
+#, python-format
+msgid "failed authorization: no project named %(pjid)s (user=%(uname)s)"
+msgstr ""
+
+#: ../nova/auth/manager.py:279
+#, python-format
+msgid "No project called %s could be found"
+msgstr ""
+
+#: ../nova/auth/manager.py:287
+#, python-format
+msgid ""
+"Failed authorization: user %(uname)s not admin and not member of project "
+"%(pjname)s"
+msgstr ""
+
+#: ../nova/auth/manager.py:289
+#, python-format
+msgid "User %(uid)s is not a member of project %(pjid)s"
+msgstr ""
+
+#: ../nova/auth/manager.py:298 ../nova/auth/manager.py:309
+#, python-format
+msgid "Invalid signature for user %s"
+msgstr ""
+
+#: ../nova/auth/manager.py:299 ../nova/auth/manager.py:310
+msgid "Signature does not match"
+msgstr ""
+
+#: ../nova/auth/manager.py:380
+msgid "Must specify project"
+msgstr ""
+
+#: ../nova/auth/manager.py:414
+#, python-format
+msgid "The %s role can not be found"
+msgstr ""
+
+#: ../nova/auth/manager.py:416
+#, python-format
+msgid "The %s role is global only"
+msgstr ""
+
+#: ../nova/auth/manager.py:420
+#, python-format
+msgid "Adding role %(role)s to user %(uid)s in project %(pid)s"
+msgstr ""
+
+#: ../nova/auth/manager.py:423
+#, python-format
+msgid "Adding sitewide role %(role)s to user %(uid)s"
+msgstr ""
+
+#: ../nova/auth/manager.py:448
+#, python-format
+msgid "Removing role %(role)s from user %(uid)s on project %(pid)s"
+msgstr ""
+
+#: ../nova/auth/manager.py:451
+#, python-format
+msgid "Removing sitewide role %(role)s from user %(uid)s"
+msgstr ""
+
+#: ../nova/auth/manager.py:515
+#, python-format
+msgid "Created project %(name)s with manager %(manager_user)s"
+msgstr ""
+
+#: ../nova/auth/manager.py:533
+#, python-format
+msgid "modifying project %s"
+msgstr ""
+
+#: ../nova/auth/manager.py:545
+#, python-format
+msgid "Adding user %(uid)s to project %(pid)s"
+msgstr ""
+
+#: ../nova/auth/manager.py:566
+#, python-format
+msgid "Remove user %(uid)s from project %(pid)s"
+msgstr ""
+
+#: ../nova/auth/manager.py:592
+#, python-format
+msgid "Deleting project %s"
+msgstr ""
+
+#: ../nova/auth/manager.py:650
+#, python-format
+msgid "Created user %(rvname)s (admin: %(rvadmin)r)"
+msgstr ""
+
+#: ../nova/auth/manager.py:659
+#, python-format
+msgid "Deleting user %s"
+msgstr ""
+
+#: ../nova/auth/manager.py:669
+#, python-format
+msgid "Access Key change for user %s"
+msgstr ""
+
+#: ../nova/auth/manager.py:671
+#, python-format
+msgid "Secret Key change for user %s"
+msgstr ""
+
+#: ../nova/auth/manager.py:673
+#, python-format
+msgid "Admin status set to %(admin)r for user %(uid)s"
+msgstr ""
+
+#: ../nova/auth/manager.py:722
+#, python-format
+msgid "No vpn data for project %s"
+msgstr ""
+
+#: ../nova/service.py:161
+#, python-format
+msgid "Starting %(topic)s node (version %(vcs_string)s)"
+msgstr ""
+
+#: ../nova/service.py:174
+msgid "Service killed that has no database entry"
+msgstr ""
+
+#: ../nova/service.py:195
+msgid "The service database object disappeared, Recreating it."
+msgstr ""
+
+#: ../nova/service.py:207
+msgid "Recovered model server connection!"
+msgstr ""
+
+#: ../nova/service.py:213
+msgid "model server went away"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:174
+#, python-format
+msgid "LDAP user %s already exists"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:205
+#, python-format
+msgid "LDAP object for %s doesn't exist"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:348
+#, python-format
+msgid "User %s doesn't exist"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:472
+#, python-format
+msgid "Group can't be created because group %s already exists"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:478
+#, python-format
+msgid "Group can't be created because user %s doesn't exist"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:495
+#, python-format
+msgid "User %s can't be searched in group because the user doesn't exist"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:507
+#, python-format
+msgid "User %s can't be added to the group because the user doesn't exist"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:510 ../nova/auth/ldapdriver.py:521
+#, python-format
+msgid "The group at dn %s doesn't exist"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:513
+#, python-format
+msgid "User %(uid)s is already a member of the group %(group_dn)s"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:524
+#, python-format
+msgid ""
+"User %s can't be removed from the group because the user doesn't exist"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:528
+#, python-format
+msgid "User %s is not a member of the group"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:542
+#, python-format
+msgid ""
+"Attempted to remove the last member of a group. Deleting the group at %s "
+"instead."
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:549
+#, python-format
+msgid "User %s can't be removed from all because the user doesn't exist"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:564
+#, python-format
+msgid "Group at dn %s doesn't exist"
+msgstr ""
+
+#: ../nova/virt/xenapi/network_utils.py:40
+#, python-format
+msgid "Found non-unique network for bridge %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/network_utils.py:43
+#, python-format
+msgid "Found no network for bridge %s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:97
+#, python-format
+msgid "Creating new user: %s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:105
+#, python-format
+msgid "Deleting user: %s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:127
+#, python-format
+msgid "Adding role %(role)s to user %(user)s for project %(project)s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:131
+#, python-format
+msgid "Adding sitewide role %(role)s to user %(user)s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:137
+#, python-format
+msgid "Removing role %(role)s from user %(user)s for project %(project)s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:141
+#, python-format
+msgid "Removing sitewide role %(role)s from user %(user)s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:146 ../nova/api/ec2/admin.py:223
+msgid "operation must be add or remove"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:159
+#, python-format
+msgid "Getting x509 for user: %(name)s on project: %(project)s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:177
+#, python-format
+msgid "Create project %(name)s managed by %(manager_user)s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:190
+#, python-format
+msgid "Modify project: %(name)s managed by %(manager_user)s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:200
+#, python-format
+msgid "Delete project: %s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:214
+#, python-format
+msgid "Adding user %(user)s to project %(project)s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:218
+#, python-format
+msgid "Removing user %(user)s from project %(project)s"
+msgstr ""
diff --git a/po/en_GB.po b/po/en_GB.po
new file mode 100644
index 000000000..601f6170b
--- /dev/null
+++ b/po/en_GB.po
@@ -0,0 +1,2873 @@
+# English (United Kingdom) translation for nova
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the nova package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+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-19 18:14+0000\n"
+"Last-Translator: Dave Walker <davewalker@ubuntu.com>\n"
+"Language-Team: English (United Kingdom) <en_GB@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"
+
+#: ../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 hosts found"
+
+#: ../nova/exception.py:33
+msgid "Unexpected error while running command."
+msgstr "Unexpected error while running command."
+
+#: ../nova/exception.py:36
+#, python-format
+msgid ""
+"%(description)s\n"
+"Command: %(cmd)s\n"
+"Exit code: %(exit_code)s\n"
+"Stdout: %(stdout)r\n"
+"Stderr: %(stderr)r"
+msgstr ""
+"%(description)s\n"
+"Command: %(cmd)s\n"
+"Exit code: %(exit_code)s\n"
+"Stdout: %(stdout)r\n"
+"Stderr: %(stderr)r"
+
+#: ../nova/exception.py:107
+msgid "DB exception wrapped"
+msgstr "DB exception wrapped"
+
+#. exc_type, exc_value, exc_traceback = sys.exc_info()
+#: ../nova/exception.py:120
+msgid "Uncaught exception"
+msgstr "Uncaught exception"
+
+#: ../nova/volume/api.py:45
+#, python-format
+msgid "Quota exceeeded for %(pid)s, tried to create %(size)sG volume"
+msgstr "Quota exceeeded for %(pid)s, tried to create %(size)sG volume"
+
+#: ../nova/volume/api.py:47
+#, python-format
+msgid "Volume quota exceeded. You cannot create a volume of size %sG"
+msgstr "Volume quota exceeded. You cannot create a volume of size %sG"
+
+#: ../nova/volume/api.py:71 ../nova/volume/api.py:96
+msgid "Volume status must be available"
+msgstr "Volume status must be available"
+
+#: ../nova/volume/api.py:98
+msgid "Volume is already attached"
+msgstr "Volume is already attached"
+
+#: ../nova/volume/api.py:104
+msgid "Volume is already detached"
+msgstr "Volume is already detached"
+
+#: ../nova/api/openstack/servers.py:72
+msgid "Failed to read private ip"
+msgstr "Failed to read private ip"
+
+#: ../nova/api/openstack/servers.py:79
+msgid "Failed to read public ip(s)"
+msgstr "Failed to read public ip(s)"
+
+#: ../nova/api/openstack/servers.py:152
+#, python-format
+msgid "%(param)s property not found for image %(_image_id)s"
+msgstr "%(param)s property not found for image %(_image_id)s"
+
+#: ../nova/api/openstack/servers.py:168
+msgid "No keypairs defined"
+msgstr "No keypairs defined"
+
+#: ../nova/api/openstack/servers.py:238
+#, python-format
+msgid "Compute.api::lock %s"
+msgstr "Compute.api::lock %s"
+
+#: ../nova/api/openstack/servers.py:253
+#, python-format
+msgid "Compute.api::unlock %s"
+msgstr "Compute.api::unlock %s"
+
+#: ../nova/api/openstack/servers.py:267
+#, python-format
+msgid "Compute.api::get_lock %s"
+msgstr "Compute.api::get_lock %s"
+
+#: ../nova/api/openstack/servers.py:281
+#, python-format
+msgid "Compute.api::reset_network %s"
+msgstr "Compute.api::reset_network %s"
+
+#: ../nova/api/openstack/servers.py:292
+#, python-format
+msgid "Compute.api::pause %s"
+msgstr "Compute.api::pause %s"
+
+#: ../nova/api/openstack/servers.py:303
+#, python-format
+msgid "Compute.api::unpause %s"
+msgstr "Compute.api::unpause %s"
+
+#: ../nova/api/openstack/servers.py:314
+#, python-format
+msgid "compute.api::suspend %s"
+msgstr "compute.api::suspend %s"
+
+#: ../nova/api/openstack/servers.py:325
+#, python-format
+msgid "compute.api::resume %s"
+msgstr "compute.api::resume %s"
+
+#: ../nova/twistd.py:157
+msgid "Wrong number of arguments."
+msgstr "Wrong number of arguments."
+
+#: ../nova/twistd.py:209
+#, python-format
+msgid "pidfile %s does not exist. Daemon not running?\n"
+msgstr "pidfile %s does not exist. Daemon not running?\n"
+
+#: ../nova/twistd.py:221
+msgid "No such process"
+msgstr "No such process"
+
+#: ../nova/twistd.py:230 ../nova/service.py:224
+#, python-format
+msgid "Serving %s"
+msgstr "Serving %s"
+
+#: ../nova/twistd.py:262 ../nova/service.py:225
+msgid "Full set of FLAGS:"
+msgstr "Full set of FLAGS:"
+
+#: ../nova/twistd.py:266
+#, python-format
+msgid "Starting %s"
+msgstr "Starting %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 "Instance %s not found"
+
+#. 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 "Attach_volume: %(instance_name)s, %(device_path)s, %(mountpoint)s"
+
+#: ../nova/virt/xenapi/volumeops.py:69
+#, python-format
+msgid "Unable to create VDI on SR %(sr_ref)s for instance %(instance_name)s"
+msgstr "Unable to create VDI on SR %(sr_ref)s for instance %(instance_name)s"
+
+#: ../nova/virt/xenapi/volumeops.py:80
+#, python-format
+msgid "Unable to use SR %(sr_ref)s for instance %(instance_name)s"
+msgstr "Unable to use SR %(sr_ref)s for instance %(instance_name)s"
+
+#: ../nova/virt/xenapi/volumeops.py:91
+#, python-format
+msgid "Unable to attach volume to instance %s"
+msgstr "Unable to attach volume to instance %s"
+
+#: ../nova/virt/xenapi/volumeops.py:93
+#, python-format
+msgid "Mountpoint %(mountpoint)s attached to instance %(instance_name)s"
+msgstr "Mountpoint %(mountpoint)s attached to instance %(instance_name)s"
+
+#. Detach VBD from VM
+#: ../nova/virt/xenapi/volumeops.py:104
+#, python-format
+msgid "Detach_volume: %(instance_name)s, %(mountpoint)s"
+msgstr "Detach_volume: %(instance_name)s, %(mountpoint)s"
+
+#: ../nova/virt/xenapi/volumeops.py:112
+#, python-format
+msgid "Unable to locate volume %s"
+msgstr "Unable to locate volume %s"
+
+#: ../nova/virt/xenapi/volumeops.py:120
+#, python-format
+msgid "Unable to detach volume %s"
+msgstr "Unable to detach volume %s"
+
+#: ../nova/virt/xenapi/volumeops.py:127
+#, python-format
+msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
+msgstr "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
+
+#: ../nova/compute/instance_types.py:41
+#, python-format
+msgid "Unknown instance type: %s"
+msgstr "Unknown instance type: %s"
+
+#: ../nova/crypto.py:46
+msgid "Filename of root CA"
+msgstr "Filename of root CA"
+
+#: ../nova/crypto.py:49
+msgid "Filename of private key"
+msgstr "Filename of private key"
+
+#: ../nova/crypto.py:51
+msgid "Filename of root Certificate Revokation List"
+msgstr "Filename of root Certificate Revocation List"
+
+#: ../nova/crypto.py:53
+msgid "Where we keep our keys"
+msgstr "Where we keep our keys"
+
+#: ../nova/crypto.py:55
+msgid "Where we keep our root CA"
+msgstr "Where we keep our root CA"
+
+#: ../nova/crypto.py:57
+msgid "Should we use a CA for each project?"
+msgstr "Should we use a CA for each project?"
+
+#: ../nova/crypto.py:61
+#, python-format
+msgid "Subject for certificate for users, %s for project, user, timestamp"
+msgstr "Subject for certificate for users, %s for project, user, timestamp"
+
+#: ../nova/crypto.py:66
+#, python-format
+msgid "Subject for certificate for projects, %s for project, timestamp"
+msgstr "Subject for certificate for projects, %s for project, timestamp"
+
+#: ../nova/crypto.py:71
+#, python-format
+msgid "Subject for certificate for vpns, %s for project, timestamp"
+msgstr "Subject for certificate for vpns, %s for project, timestamp"
+
+#: ../nova/crypto.py:258
+#, python-format
+msgid "Flags path: %s"
+msgstr "Flags path: %s"
+
+#: ../nova/scheduler/manager.py:69
+#, python-format
+msgid "Casting to %(topic)s %(host)s for %(method)s"
+msgstr "Casting to %(topic)s %(host)s for %(method)s"
+
+#: ../nova/compute/manager.py:78
+#, python-format
+msgid "check_instance_lock: decorating: |%s|"
+msgstr "check_instance_lock: decorating: |%s|"
+
+#: ../nova/compute/manager.py:80
+#, python-format
+msgid ""
+"check_instance_lock: arguments: |%(self)s| |%(context)s| |%(instance_id)s|"
+msgstr ""
+"check_instance_lock: arguments: |%(self)s| |%(context)s| |%(instance_id)s|"
+
+#: ../nova/compute/manager.py:84
+#, python-format
+msgid "check_instance_lock: locked: |%s|"
+msgstr "check_instance_lock: locked: |%s|"
+
+#: ../nova/compute/manager.py:86
+#, python-format
+msgid "check_instance_lock: admin: |%s|"
+msgstr "check_instance_lock: admin: |%s|"
+
+#: ../nova/compute/manager.py:91
+#, python-format
+msgid "check_instance_lock: executing: |%s|"
+msgstr "check_instance_lock: executing: |%s|"
+
+#: ../nova/compute/manager.py:95
+#, python-format
+msgid "check_instance_lock: not executing |%s|"
+msgstr "check_instance_lock: not executing |%s|"
+
+#: ../nova/compute/manager.py:179
+msgid "Instance has already been created"
+msgstr "Instance has already been created"
+
+#: ../nova/compute/manager.py:180
+#, python-format
+msgid "instance %s: starting..."
+msgstr "instance %s: starting..."
+
+#. pylint: disable=W0702
+#: ../nova/compute/manager.py:219
+#, python-format
+msgid "instance %s: Failed to spawn"
+msgstr "instance %s: Failed to spawn"
+
+#: ../nova/compute/manager.py:233 ../nova/tests/test_cloud.py:286
+#, python-format
+msgid "Terminating instance %s"
+msgstr "Terminating instance %s"
+
+#: ../nova/compute/manager.py:255
+#, python-format
+msgid "Deallocating address %s"
+msgstr "Deallocating address %s"
+
+#: ../nova/compute/manager.py:268
+#, python-format
+msgid "trying to destroy already destroyed instance: %s"
+msgstr "trying to destroy already destroyed instance: %s"
+
+#: ../nova/compute/manager.py:282
+#, python-format
+msgid "Rebooting instance %s"
+msgstr "Rebooting instance %s"
+
+#: ../nova/compute/manager.py:287
+#, python-format
+msgid ""
+"trying to reboot a non-running instance: %(instance_id)s (state: %(state)s "
+"expected: %(running)s)"
+msgstr ""
+"trying to reboot a non-running instance: %(instance_id)s (state: %(state)s "
+"expected: %(running)s)"
+
+#: ../nova/compute/manager.py:311
+#, python-format
+msgid "instance %s: snapshotting"
+msgstr "instance %s: snapshotting"
+
+#: ../nova/compute/manager.py:316
+#, python-format
+msgid ""
+"trying to snapshot a non-running instance: %(instance_id)s (state: %(state)s "
+"expected: %(running)s)"
+msgstr ""
+"trying to snapshot a non-running instance: %(instance_id)s (state: %(state)s "
+"expected: %(running)s)"
+
+#: ../nova/compute/manager.py:332
+#, python-format
+msgid ""
+"trying to reset the password on a non-running instance: %(instance_id)s "
+"(state: %(instance_state)s expected: %(expected_state)s)"
+msgstr ""
+"trying to reset the password on a non-running instance: %(instance_id)s "
+"(state: %(instance_state)s expected: %(expected_state)s)"
+
+#: ../nova/compute/manager.py:335
+#, python-format
+msgid "instance %s: setting admin password"
+msgstr "instance %s: setting admin password"
+
+#: ../nova/compute/manager.py:353
+#, python-format
+msgid ""
+"trying to inject a file into a non-running instance: %(instance_id)s (state: "
+"%(instance_state)s expected: %(expected_state)s)"
+msgstr ""
+"trying to inject a file into a non-running instance: %(instance_id)s (state: "
+"%(instance_state)s expected: %(expected_state)s)"
+
+#: ../nova/compute/manager.py:362
+#, python-format
+msgid "instance %(nm)s: injecting file to %(plain_path)s"
+msgstr "instance %(nm)s: injecting file to %(plain_path)s"
+
+#: ../nova/compute/manager.py:372
+#, python-format
+msgid "instance %s: rescuing"
+msgstr "instance %s: rescuing"
+
+#: ../nova/compute/manager.py:387
+#, python-format
+msgid "instance %s: unrescuing"
+msgstr ""
+
+#: ../nova/compute/manager.py:406
+#, python-format
+msgid "instance %s: pausing"
+msgstr "instance %s: pausing"
+
+#: ../nova/compute/manager.py:423
+#, python-format
+msgid "instance %s: unpausing"
+msgstr ""
+
+#: ../nova/compute/manager.py:440
+#, python-format
+msgid "instance %s: retrieving diagnostics"
+msgstr "instance %s: retrieving diagnostics"
+
+#: ../nova/compute/manager.py:453
+#, python-format
+msgid "instance %s: suspending"
+msgstr "instance %s: suspending"
+
+#: ../nova/compute/manager.py:472
+#, python-format
+msgid "instance %s: resuming"
+msgstr "instance %s: resuming"
+
+#: ../nova/compute/manager.py:491
+#, python-format
+msgid "instance %s: locking"
+msgstr "instance %s: locking"
+
+#: ../nova/compute/manager.py:503
+#, python-format
+msgid "instance %s: unlocking"
+msgstr "instance %s: unlocking"
+
+#: ../nova/compute/manager.py:513
+#, python-format
+msgid "instance %s: getting locked state"
+msgstr "instance %s: getting locked state"
+
+#: ../nova/compute/manager.py:526
+#, python-format
+msgid "instance %s: reset network"
+msgstr "instance %s: reset network"
+
+#: ../nova/compute/manager.py:535 ../nova/api/ec2/cloud.py:515
+#, python-format
+msgid "Get console output for instance %s"
+msgstr "Get console output for instance %s"
+
+#: ../nova/compute/manager.py:543
+#, python-format
+msgid "instance %s: getting ajax console"
+msgstr "instance %s: getting ajax console"
+
+#: ../nova/compute/manager.py:553
+#, python-format
+msgid ""
+"instance %(instance_id)s: attaching volume %(volume_id)s to %(mountpoint)s"
+msgstr ""
+"instance %(instance_id)s: attaching volume %(volume_id)s to %(mountpoint)s"
+
+#. pylint: disable=W0702
+#. NOTE(vish): The inline callback eats the exception info so we
+#. log the traceback here and reraise the same
+#. ecxception below.
+#: ../nova/compute/manager.py:569
+#, python-format
+msgid "instance %(instance_id)s: attach failed %(mountpoint)s, removing"
+msgstr "instance %(instance_id)s: attach failed %(mountpoint)s, removing"
+
+#: ../nova/compute/manager.py:585
+#, python-format
+msgid ""
+"Detach volume %(volume_id)s from mountpoint %(mp)s on instance "
+"%(instance_id)s"
+msgstr ""
+"Detach volume %(volume_id)s from mountpoint %(mp)s on instance "
+"%(instance_id)s"
+
+#: ../nova/compute/manager.py:588
+#, python-format
+msgid "Detaching volume from unknown instance %s"
+msgstr "Detaching volume from unknown instance %s"
+
+#: ../nova/scheduler/simple.py:53
+#, python-format
+msgid "Host %s is not alive"
+msgstr "Host %s is not alive"
+
+#: ../nova/scheduler/simple.py:65
+msgid "All hosts have too many cores"
+msgstr "All hosts have too many cores"
+
+#: ../nova/scheduler/simple.py:87
+#, python-format
+msgid "Host %s not available"
+msgstr "Host %s not available"
+
+#: ../nova/scheduler/simple.py:99
+msgid "All hosts have too many gigabytes"
+msgstr "All hosts have too many gigabytes"
+
+#: ../nova/scheduler/simple.py:119
+msgid "All hosts have too many networks"
+msgstr "All hosts have too many networks"
+
+#: ../nova/volume/manager.py:85
+#, python-format
+msgid "Re-exporting %s volumes"
+msgstr "Re-exporting %s volumes"
+
+#: ../nova/volume/manager.py:90
+#, python-format
+msgid "volume %s: skipping export"
+msgstr "volume %s: skipping export"
+
+#: ../nova/volume/manager.py:96
+#, python-format
+msgid "volume %s: creating"
+msgstr "volume %s: creating"
+
+#: ../nova/volume/manager.py:108
+#, python-format
+msgid "volume %(vol_name)s: creating lv of size %(vol_size)sG"
+msgstr "volume %(vol_name)s: creating lv of size %(vol_size)sG"
+
+#: ../nova/volume/manager.py:112
+#, python-format
+msgid "volume %s: creating export"
+msgstr "volume %s: creating export"
+
+#: ../nova/volume/manager.py:123
+#, python-format
+msgid "volume %s: created successfully"
+msgstr "volume %s: created successfully"
+
+#: ../nova/volume/manager.py:131
+msgid "Volume is still attached"
+msgstr "Volume is still attached"
+
+#: ../nova/volume/manager.py:133
+msgid "Volume is not local to this node"
+msgstr "Volume is not local to this node"
+
+#: ../nova/volume/manager.py:136
+#, python-format
+msgid "volume %s: removing export"
+msgstr "volume %s: removing export"
+
+#: ../nova/volume/manager.py:138
+#, python-format
+msgid "volume %s: deleting"
+msgstr "volume %s: deleting"
+
+#: ../nova/volume/manager.py:147
+#, python-format
+msgid "volume %s: deleted successfully"
+msgstr "volume %s: deleted successfully"
+
+#: ../nova/virt/xenapi/fake.py:74
+#, python-format
+msgid "%(text)s: _db_content => %(content)s"
+msgstr "%(text)s: _db_content => %(content)s"
+
+#: ../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 "Raising NotImplemented"
+
+#: ../nova/virt/xenapi/fake.py:306
+#, python-format
+msgid "xenapi.fake does not have an implementation for %s"
+msgstr "xenapi.fake does not have an implementation for %s"
+
+#: ../nova/virt/xenapi/fake.py:341
+#, python-format
+msgid "Calling %(localname)s %(impl)s"
+msgstr "Calling %(localname)s %(impl)s"
+
+#: ../nova/virt/xenapi/fake.py:346
+#, python-format
+msgid "Calling getter %s"
+msgstr "Calling getter %s"
+
+#: ../nova/virt/xenapi/fake.py:406
+#, python-format
+msgid ""
+"xenapi.fake does not have an implementation for %s or it has been called "
+"with the wrong number of arguments"
+msgstr ""
+"xenapi.fake does not have an implementation for %s or it has been called "
+"with the wrong number of arguments"
+
+#: ../nova/tests/test_cloud.py:256
+msgid "Can't test instances without a real virtual env."
+msgstr "Can't test instances without a real virtual env."
+
+#: ../nova/tests/test_cloud.py:268
+#, python-format
+msgid "Need to watch instance %s until it's running..."
+msgstr "Need to watch instance %s until it's running..."
+
+#: ../nova/virt/connection.py:73
+msgid "Failed to open connection to the hypervisor"
+msgstr "Failed to open connection to the hypervisor"
+
+#: ../nova/network/linux_net.py:187
+#, python-format
+msgid "Starting VLAN inteface %s"
+msgstr "Starting VLAN inteface %s"
+
+#: ../nova/network/linux_net.py:208
+#, python-format
+msgid "Starting Bridge interface for %s"
+msgstr "Starting Bridge interface for %s"
+
+#. pylint: disable=W0703
+#: ../nova/network/linux_net.py:314
+#, python-format
+msgid "Hupping dnsmasq threw %s"
+msgstr "Hupping dnsmasq threw %s"
+
+#: ../nova/network/linux_net.py:316
+#, python-format
+msgid "Pid %d is stale, relaunching dnsmasq"
+msgstr "Pid %d is stale, relaunching dnsmasq"
+
+#. pylint: disable=W0703
+#: ../nova/network/linux_net.py:358
+#, python-format
+msgid "killing radvd threw %s"
+msgstr "killing radvd threw %s"
+
+#: ../nova/network/linux_net.py:360
+#, python-format
+msgid "Pid %d is stale, relaunching radvd"
+msgstr "Pid %d is stale, relaunching radvd"
+
+#. pylint: disable=W0703
+#: ../nova/network/linux_net.py:449
+#, python-format
+msgid "Killing dnsmasq threw %s"
+msgstr "Killing dnsmasq threw %s"
+
+#: ../nova/utils.py:58
+#, python-format
+msgid "Inner Exception: %s"
+msgstr "Inner Exception: %s"
+
+#: ../nova/utils.py:59
+#, python-format
+msgid "Class %s cannot be found"
+msgstr "Class %s cannot be found"
+
+#: ../nova/utils.py:118
+#, python-format
+msgid "Fetching %s"
+msgstr "Fetching %s"
+
+#: ../nova/utils.py:130
+#, python-format
+msgid "Running cmd (subprocess): %s"
+msgstr "Running cmd (subprocess): %s"
+
+#: ../nova/utils.py:143 ../nova/utils.py:183
+#, python-format
+msgid "Result was %s"
+msgstr "Result was %s"
+
+#: ../nova/utils.py:159
+#, python-format
+msgid "Running cmd (SSH): %s"
+msgstr "Running cmd (SSH): %s"
+
+#: ../nova/utils.py:217
+#, python-format
+msgid "debug in callback: %s"
+msgstr "debug in callback: %s"
+
+#: ../nova/utils.py:222
+#, python-format
+msgid "Running %s"
+msgstr "Running %s"
+
+#: ../nova/utils.py:262
+#, python-format
+msgid "Link Local address is not found.:%s"
+msgstr "Link Local address is not found.:%s"
+
+#: ../nova/utils.py:265
+#, python-format
+msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
+msgstr "Couldn't get Link Local IP of %(interface)s :%(ex)s"
+
+#: ../nova/utils.py:363
+#, python-format
+msgid "Invalid backend: %s"
+msgstr "Invalid backend: %s"
+
+#: ../nova/utils.py:374
+#, python-format
+msgid "backend %s"
+msgstr "backend %s"
+
+#: ../nova/fakerabbit.py:49
+#, python-format
+msgid "(%(nm)s) publish (key: %(routing_key)s) %(message)s"
+msgstr "(%(nm)s) publish (key: %(routing_key)s) %(message)s"
+
+#: ../nova/fakerabbit.py:54
+#, python-format
+msgid "Publishing to route %s"
+msgstr "Publishing to route %s"
+
+#: ../nova/fakerabbit.py:84
+#, python-format
+msgid "Declaring queue %s"
+msgstr "Declaring queue %s"
+
+#: ../nova/fakerabbit.py:90
+#, python-format
+msgid "Declaring exchange %s"
+msgstr "Declaring exchange %s"
+
+#: ../nova/fakerabbit.py:96
+#, python-format
+msgid "Binding %(queue)s to %(exchange)s with key %(routing_key)s"
+msgstr "Binding %(queue)s to %(exchange)s with key %(routing_key)s"
+
+#: ../nova/fakerabbit.py:121
+#, python-format
+msgid "Getting from %(queue)s: %(message)s"
+msgstr "Getting from %(queue)s: %(message)s"
+
+#: ../nova/virt/xenapi/vm_utils.py:135 ../nova/virt/hyperv.py:171
+#, python-format
+msgid "Created VM %s..."
+msgstr "Created VM %s..."
+
+#: ../nova/virt/xenapi/vm_utils.py:138
+#, python-format
+msgid "Created VM %(instance_name)s as %(vm_ref)s."
+msgstr "Created VM %(instance_name)s as %(vm_ref)s."
+
+#: ../nova/virt/xenapi/vm_utils.py:168
+#, python-format
+msgid "Creating VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
+msgstr "Creating VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
+
+#: ../nova/virt/xenapi/vm_utils.py:171
+#, python-format
+msgid "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
+msgstr "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
+
+#: ../nova/virt/xenapi/vm_utils.py:187
+#, python-format
+msgid "VBD not found in instance %s"
+msgstr "VBD not found in instance %s"
+
+#: ../nova/virt/xenapi/vm_utils.py:197
+#, python-format
+msgid "Unable to unplug VBD %s"
+msgstr "Unable to unplug VBD %s"
+
+#: ../nova/virt/xenapi/vm_utils.py:209
+#, python-format
+msgid "Unable to destroy VBD %s"
+msgstr "Unable to destroy VBD %s"
+
+#: ../nova/virt/xenapi/vm_utils.py:224
+#, python-format
+msgid "Creating VIF for VM %(vm_ref)s, network %(network_ref)s."
+msgstr "Creating VIF for VM %(vm_ref)s, network %(network_ref)s."
+
+#: ../nova/virt/xenapi/vm_utils.py:227
+#, python-format
+msgid "Created VIF %(vif_ref)s for VM %(vm_ref)s, network %(network_ref)s."
+msgstr "Created VIF %(vif_ref)s for VM %(vm_ref)s, network %(network_ref)s."
+
+#: ../nova/virt/xenapi/vm_utils.py:246
+#, python-format
+msgid ""
+"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s) on "
+"%(sr_ref)s."
+msgstr ""
+"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s) on "
+"%(sr_ref)s."
+
+#. TODO(sirp): Add quiesce and VSS locking support when Windows support
+#. is added
+#: ../nova/virt/xenapi/vm_utils.py:258
+#, python-format
+msgid "Snapshotting VM %(vm_ref)s with label '%(label)s'..."
+msgstr "Snapshotting VM %(vm_ref)s with label '%(label)s'..."
+
+#: ../nova/virt/xenapi/vm_utils.py:272
+#, python-format
+msgid "Created snapshot %(template_vm_ref)s from VM %(vm_ref)s."
+msgstr "Created snapshot %(template_vm_ref)s from VM %(vm_ref)s."
+
+#: ../nova/virt/xenapi/vm_utils.py:286
+#, python-format
+msgid "Asking xapi to upload %(vdi_uuids)s as ID %(image_id)s"
+msgstr "Asking xapi to upload %(vdi_uuids)s as ID %(image_id)s"
+
+#: ../nova/virt/xenapi/vm_utils.py:327
+#, python-format
+msgid "Size for image %(image)s:%(virtual_size)d"
+msgstr "Size for image %(image)s:%(virtual_size)d"
+
+#: ../nova/virt/xenapi/vm_utils.py:332
+#, python-format
+msgid "Glance image %s"
+msgstr "Glance image %s"
+
+#. we need to invoke a plugin for copying VDI's
+#. content into proper path
+#: ../nova/virt/xenapi/vm_utils.py:342
+#, python-format
+msgid "Copying VDI %s to /boot/guest on dom0"
+msgstr "Copying VDI %s to /boot/guest on dom0"
+
+#: ../nova/virt/xenapi/vm_utils.py:352
+#, python-format
+msgid "Kernel/Ramdisk VDI %s destroyed"
+msgstr "Kernel/Ramdisk VDI %s destroyed"
+
+#: ../nova/virt/xenapi/vm_utils.py:361
+#, python-format
+msgid "Asking xapi to fetch %(url)s as %(access)s"
+msgstr "Asking xapi to fetch %(url)s as %(access)s"
+
+#: ../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 "Looking up vdi %s for PV kernel"
+
+#: ../nova/virt/xenapi/vm_utils.py:397
+#, python-format
+msgid "PV Kernel in VDI:%s"
+msgstr "PV Kernel in VDI:%s"
+
+#: ../nova/virt/xenapi/vm_utils.py:405
+#, python-format
+msgid "Running pygrub against %s"
+msgstr "Running pygrub against %s"
+
+#: ../nova/virt/xenapi/vm_utils.py:411
+#, python-format
+msgid "Found Xen kernel %s"
+msgstr "Found Xen kernel %s"
+
+#: ../nova/virt/xenapi/vm_utils.py:413
+msgid "No Xen kernel found. Booting HVM."
+msgstr "No Xen kernel found. Booting HVM."
+
+#: ../nova/virt/xenapi/vm_utils.py:425 ../nova/virt/hyperv.py:431
+#, python-format
+msgid "duplicate name found: %s"
+msgstr "duplicate name found: %s"
+
+#: ../nova/virt/xenapi/vm_utils.py:442
+#, python-format
+msgid "VDI %s is still available"
+msgstr "VDI %s is still available"
+
+#: ../nova/virt/xenapi/vm_utils.py:463
+#, python-format
+msgid "(VM_UTILS) xenserver vm state -> |%s|"
+msgstr "(VM_UTILS) xenserver vm state -> |%s|"
+
+#: ../nova/virt/xenapi/vm_utils.py:465
+#, python-format
+msgid "(VM_UTILS) xenapi power_state -> |%s|"
+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 "VHD %(vdi_uuid)s has parent %(parent_ref)s"
+
+#: ../nova/virt/xenapi/vm_utils.py:542
+#, python-format
+msgid "Re-scanning SR %s"
+msgstr "Re-scanning SR %s"
+
+#: ../nova/virt/xenapi/vm_utils.py:567
+#, python-format
+msgid ""
+"VHD coalesce attempts exceeded (%(counter)d > %(max_attempts)d), giving up..."
+msgstr ""
+"VHD coalesce attempts exceeded (%(counter)d > %(max_attempts)d), giving up..."
+
+#: ../nova/virt/xenapi/vm_utils.py:574
+#, python-format
+msgid ""
+"Parent %(parent_uuid)s doesn't match original parent "
+"%(original_parent_uuid)s, waiting for coalesce..."
+msgstr ""
+"Parent %(parent_uuid)s doesn't match original parent "
+"%(original_parent_uuid)s, waiting for coalesce..."
+
+#: ../nova/virt/xenapi/vm_utils.py:590
+#, python-format
+msgid "No VDIs found for VM %s"
+msgstr "No VDIs found for VM %s"
+
+#: ../nova/virt/xenapi/vm_utils.py:594
+#, python-format
+msgid "Unexpected number of VDIs (%(num_vdis)s) found for VM %(vm_ref)s"
+msgstr "Unexpected number of VDIs (%(num_vdis)s) found for VM %(vm_ref)s"
+
+#: ../nova/virt/xenapi/vm_utils.py:653
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:188
+#, python-format
+msgid "Creating VBD for VDI %s ... "
+msgstr "Creating VBD for VDI %s ... "
+
+#: ../nova/virt/xenapi/vm_utils.py:655
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:190
+#, python-format
+msgid "Creating VBD for VDI %s done."
+msgstr "Creating VBD for VDI %s done."
+
+#: ../nova/virt/xenapi/vm_utils.py:657
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:192
+#, python-format
+msgid "Plugging VBD %s ... "
+msgstr "Plugging VBD %s ... "
+
+#: ../nova/virt/xenapi/vm_utils.py:659
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:194
+#, python-format
+msgid "Plugging VBD %s done."
+msgstr "Plugging VBD %s done."
+
+#: ../nova/virt/xenapi/vm_utils.py:661
+#, python-format
+msgid "VBD %(vbd)s plugged as %(orig_dev)s"
+msgstr "VBD %(vbd)s plugged as %(orig_dev)s"
+
+#: ../nova/virt/xenapi/vm_utils.py:664
+#, python-format
+msgid "VBD %(vbd)s plugged into wrong dev, remapping to %(dev)s"
+msgstr "VBD %(vbd)s plugged into wrong dev, remapping to %(dev)s"
+
+#: ../nova/virt/xenapi/vm_utils.py:668
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:197
+#, python-format
+msgid "Destroying VBD for VDI %s ... "
+msgstr "Destroying VBD for VDI %s ... "
+
+#: ../nova/virt/xenapi/vm_utils.py:671
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:200
+#, python-format
+msgid "Destroying VBD for VDI %s done."
+msgstr "Destroying VBD for VDI %s done."
+
+#: ../nova/virt/xenapi/vm_utils.py:683
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:211
+msgid "VBD.unplug successful first time."
+msgstr "VBD.unplug successful first time."
+
+#: ../nova/virt/xenapi/vm_utils.py:688
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:216
+msgid "VBD.unplug rejected: retrying..."
+msgstr "VBD.unplug rejected: retrying..."
+
+#: ../nova/virt/xenapi/vm_utils.py:692
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:220
+msgid "VBD.unplug successful eventually."
+msgstr "VBD.unplug successful eventually."
+
+#: ../nova/virt/xenapi/vm_utils.py:695
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:223
+#, python-format
+msgid "Ignoring XenAPI.Failure in VBD.unplug: %s"
+msgstr "Ignoring XenAPI.Failure in VBD.unplug: %s"
+
+#: ../nova/virt/xenapi/vm_utils.py:704
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:66
+#, python-format
+msgid "Ignoring XenAPI.Failure %s"
+msgstr "Ignoring XenAPI.Failure %s"
+
+#: ../nova/virt/xenapi/vm_utils.py:735
+#, python-format
+msgid ""
+"Writing partition table %(primary_first)d %(primary_last)d to %(dest)s..."
+msgstr ""
+"Writing partition table %(primary_first)d %(primary_last)d to %(dest)s..."
+
+#: ../nova/virt/xenapi/vm_utils.py:747
+#, python-format
+msgid "Writing partition table %s done."
+msgstr "Writing partition table %s done."
+
+#: ../nova/tests/test_rpc.py:89
+#, python-format
+msgid "Nested received %(queue)s, %(value)s"
+msgstr "Nested received %(queue)s, %(value)s"
+
+#: ../nova/tests/test_rpc.py:95
+#, python-format
+msgid "Nested return %s"
+msgstr "Nested return %s"
+
+#: ../nova/tests/test_rpc.py:120 ../nova/tests/test_rpc.py:126
+#, python-format
+msgid "Received %s"
+msgstr "Received %s"
+
+#: ../nova/db/sqlalchemy/api.py:44
+msgid "Use of empty request context is deprecated"
+msgstr "Use of empty request context is deprecated"
+
+#: ../nova/db/sqlalchemy/api.py:133
+#, python-format
+msgid "No service for id %s"
+msgstr "No service for id %s"
+
+#: ../nova/db/sqlalchemy/api.py:251
+#, python-format
+msgid "No service for %(host)s, %(binary)s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:592
+msgid "No fixed ips defined"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:608
+#, python-format
+msgid "No floating ip for address %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:629
+#, python-format
+msgid "No address for instance %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:961
+#, python-format
+msgid "no keypair for user %(user_id)s, name %(name)s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1076 ../nova/db/sqlalchemy/api.py:1156
+#, python-format
+msgid "No network for id %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1086
+msgid "No networks defined"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1115
+#, python-format
+msgid "No network for bridge %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1129 ../nova/db/sqlalchemy/api.py:1142
+#, python-format
+msgid "No network for instance %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1277
+#, python-format
+msgid "Token %s does not exist"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1302
+#, python-format
+msgid "No quota for project_id %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1455 ../nova/db/sqlalchemy/api.py:1501
+#: ../nova/api/ec2/__init__.py:323
+#, python-format
+msgid "Volume %s not found"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1514
+#, python-format
+msgid "No export device found for volume %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1527
+#, python-format
+msgid "No target id found for volume %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1572
+#, python-format
+msgid "No security group with id %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1589
+#, python-format
+msgid "No security group named %(group_name)s for project: %(project_id)s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1682
+#, python-format
+msgid "No secuity group rule with id %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1756
+#, python-format
+msgid "No user for id %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1772
+#, python-format
+msgid "No user for access key %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1834
+#, python-format
+msgid "No project with id %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1979
+#, python-format
+msgid "No console pool with id %(pool_id)s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1996
+#, python-format
+msgid ""
+"No console pool of type %(console_type)s for compute host %(compute_host)s "
+"on proxy host %(host)s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:2035
+#, python-format
+msgid "No console for instance %(instance_id)s in pool %(pool_id)s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:2057
+#, python-format
+msgid "on instance %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:2058
+#, python-format
+msgid "No console with id %(console_id)s %(idesc)s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:2078 ../nova/db/sqlalchemy/api.py:2097
+#, python-format
+msgid "No zone with id %(zone_id)s"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:160
+#, python-format
+msgid "Checking state of %s"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:165
+#, python-format
+msgid "Current state of %(name)s was %(state)s."
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:183
+#, python-format
+msgid "Connecting to libvirt: %s"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:196
+msgid "Connection to libvirt broke"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:258
+#, python-format
+msgid "instance %(instance_name)s: deleting instance files %(target)s"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:283
+#, python-format
+msgid "Invalid device path %s"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:313
+#, python-format
+msgid "No disk at %s"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:320
+msgid "Instance snapshotting is not supported for libvirtat this time"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:336
+#, python-format
+msgid "instance %s: rebooted"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:339
+#, python-format
+msgid "_wait_for_reboot failed: %s"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:382
+#, python-format
+msgid "instance %s: rescued"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:385
+#, python-format
+msgid "_wait_for_rescue failed: %s"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:411
+#, python-format
+msgid "instance %s: is running"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:422
+#, python-format
+msgid "instance %s: booted"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:425 ../nova/virt/xenapi/vmops.py:186
+#, python-format
+msgid "instance %s: failed to boot"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:436
+#, python-format
+msgid "virsh said: %r"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:440
+msgid "cool, it's a device"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:448
+#, python-format
+msgid "data: %(data)r, fpath: %(fpath)r"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:456
+#, python-format
+msgid "Contents of file %(fpath)s: %(contents)r"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:489
+msgid "Unable to find an open port"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:563
+#, python-format
+msgid "instance %s: Creating image"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:646
+#, python-format
+msgid "instance %(inst_name)s: injecting key into image %(img_id)s"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:649
+#, python-format
+msgid "instance %(inst_name)s: injecting net into image %(img_id)s"
+msgstr ""
+
+#. This could be a windows image, or a vmdk format disk
+#: ../nova/virt/libvirt_conn.py:657
+#, python-format
+msgid ""
+"instance %(inst_name)s: ignoring error injecting data into image %(img_id)s "
+"(%(e)s)"
+msgstr ""
+
+#. TODO(termie): cache?
+#: ../nova/virt/libvirt_conn.py:665
+#, python-format
+msgid "instance %s: starting toXML method"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:732
+#, python-format
+msgid "instance %s: finished toXML method"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:751
+msgid "diagnostics are not supported for libvirt"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:1225
+#, python-format
+msgid "Attempted to unfilter instance %s which is not filtered"
+msgstr ""
+
+#: ../nova/api/ec2/metadatarequesthandler.py:76
+#, python-format
+msgid "Failed to get metadata for ip: %s"
+msgstr ""
+
+#: ../nova/auth/fakeldap.py:33
+msgid "Attempted to instantiate singleton"
+msgstr ""
+
+#: ../nova/network/api.py:39
+#, python-format
+msgid "Quota exceeeded for %s, tried to allocate address"
+msgstr ""
+
+#: ../nova/network/api.py:42
+msgid "Address quota exceeded. You cannot allocate any more addresses"
+msgstr ""
+
+#: ../nova/tests/test_volume.py:162
+#, python-format
+msgid "Target %s allocated"
+msgstr ""
+
+#: ../nova/virt/images.py:70
+#, python-format
+msgid "Finished retreving %(url)s -- placed in %(path)s"
+msgstr ""
+
+#: ../nova/scheduler/driver.py:66
+msgid "Must implement a fallback schedule"
+msgstr ""
+
+#: ../nova/console/manager.py:70
+msgid "Adding console"
+msgstr ""
+
+#: ../nova/console/manager.py:90
+#, python-format
+msgid "Tried to remove non-existant console %(console_id)s."
+msgstr ""
+
+#: ../nova/api/direct.py:149
+msgid "not available"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:62
+#, python-format
+msgid "The key_pair %s already exists"
+msgstr ""
+
+#. TODO(vish): Do this with M2Crypto instead
+#: ../nova/api/ec2/cloud.py:118
+#, python-format
+msgid "Generating root CA: %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:303
+#, python-format
+msgid "Create key pair %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:311
+#, python-format
+msgid "Delete key pair %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:386
+#, python-format
+msgid "%s is not a valid ipProtocol"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:390
+msgid "Invalid port range"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:421
+#, python-format
+msgid "Revoke security group ingress %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:430 ../nova/api/ec2/cloud.py:459
+msgid "Not enough parameters to build a valid rule."
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:443
+msgid "No rule for the specified parameters."
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:450
+#, python-format
+msgid "Authorize security group ingress %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:464
+#, python-format
+msgid "This rule already exists in group %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:492
+#, python-format
+msgid "Create Security Group %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:495
+#, python-format
+msgid "group %s already exists"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:507
+#, python-format
+msgid "Delete security group %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:584
+#, python-format
+msgid "Create volume of %s GB"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:612
+#, python-format
+msgid "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:629
+#, python-format
+msgid "Detach volume %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:761
+msgid "Allocate address"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:766
+#, python-format
+msgid "Release address %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:771
+#, python-format
+msgid "Associate address %(public_ip)s to instance %(instance_id)s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:780
+#, python-format
+msgid "Disassociate address %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:807
+msgid "Going to start terminating instances"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:815
+#, python-format
+msgid "Reboot instance %r"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:867
+#, python-format
+msgid "De-registering image %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:875
+#, python-format
+msgid "Registered image %(image_location)s with id %(image_id)s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:882 ../nova/api/ec2/cloud.py:900
+#, python-format
+msgid "attribute not supported: %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:890
+#, python-format
+msgid "invalid id: %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:903
+msgid "user or group not specified"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:905
+msgid "only group \"all\" is supported"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:907
+msgid "operation_type must be add or remove"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:908
+#, python-format
+msgid "Updating image %s publicity"
+msgstr ""
+
+#: ../bin/nova-api.py:52
+#, python-format
+msgid "Using paste.deploy config at: %s"
+msgstr ""
+
+#: ../bin/nova-api.py:57
+#, python-format
+msgid "No paste configuration for app: %s"
+msgstr ""
+
+#: ../bin/nova-api.py:59
+#, python-format
+msgid ""
+"App Config: %(api)s\n"
+"%(config)r"
+msgstr ""
+
+#: ../bin/nova-api.py:64
+#, python-format
+msgid "Running %s API"
+msgstr ""
+
+#: ../bin/nova-api.py:69
+#, python-format
+msgid "No known API applications configured in %s."
+msgstr ""
+
+#: ../bin/nova-api.py:83
+#, python-format
+msgid "Starting nova-api node (version %s)"
+msgstr ""
+
+#: ../bin/nova-api.py:89
+#, python-format
+msgid "No paste configuration found for: %s"
+msgstr ""
+
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:84
+#, python-format
+msgid "Argument %(key)s value %(value)s is too short."
+msgstr ""
+
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:89
+#, python-format
+msgid "Argument %(key)s value %(value)s contains invalid characters."
+msgstr ""
+
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:94
+#, python-format
+msgid "Argument %(key)s value %(value)s starts with a hyphen."
+msgstr ""
+
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:102
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:130
+#, python-format
+msgid "Argument %s is required."
+msgstr ""
+
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:117
+#, python-format
+msgid ""
+"Argument %(key)s may not take value %(value)s. Valid values are ['true', "
+"'false']."
+msgstr ""
+
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:163
+#, python-format
+msgid ""
+"Created VDI %(vdi_ref)s (%(label)s, %(size)s, %(read_only)s) on %(sr_ref)s."
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:67
+#, python-format
+msgid "Attempted to create non-unique name %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:73
+#, python-format
+msgid "instance %(name)s: not enough free memory"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:148
+#, python-format
+msgid "Starting VM %s..."
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:151
+#, python-format
+msgid "Spawning VM %(instance_name)s created %(vm_ref)s."
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:162
+#, python-format
+msgid "Invalid value for onset_files: '%s'"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:167
+#, python-format
+msgid "Injecting file path: '%s'"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:180
+#, python-format
+msgid "Instance %s: booted"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:232
+#, python-format
+msgid "Instance not present %s"
+msgstr ""
+
+#. TODO(sirp): Add quiesce and VSS locking support when Windows support
+#. is added
+#: ../nova/virt/xenapi/vmops.py:261
+#, python-format
+msgid "Starting snapshot for VM %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:269
+#, python-format
+msgid "Unable to Snapshot %(vm_ref)s: %(exc)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:280
+#, python-format
+msgid "Finished snapshot and upload for VM %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:356
+#, python-format
+msgid "VM %(vm)s already halted, skipping shutdown..."
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:389
+msgid "Removing kernel/ramdisk files"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:399
+msgid "kernel/ramdisk files removed"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:561
+#, python-format
+msgid ""
+"TIMEOUT: The call to %(method)s timed out. VM id=%(instance_id)s; "
+"args=%(strargs)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:564
+#, python-format
+msgid ""
+"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. VM "
+"id=%(instance_id)s; args=%(strargs)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:569
+#, python-format
+msgid ""
+"The call to %(method)s returned an error: %(e)s. VM id=%(instance_id)s; "
+"args=%(strargs)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:760
+#, python-format
+msgid "OpenSSL error: %s"
+msgstr ""
+
+#: ../nova/tests/test_compute.py:148
+#, python-format
+msgid "Running instances: %s"
+msgstr ""
+
+#: ../nova/tests/test_compute.py:154
+#, python-format
+msgid "After terminating instances: %s"
+msgstr ""
+
+#: ../nova/cloudpipe/pipelib.py:45
+msgid "Template for script to run on cloudpipe instance boot"
+msgstr ""
+
+#: ../nova/cloudpipe/pipelib.py:48
+msgid "Network to push into openvpn config"
+msgstr ""
+
+#: ../nova/cloudpipe/pipelib.py:51
+msgid "Netmask to push into openvpn config"
+msgstr ""
+
+#: ../nova/cloudpipe/pipelib.py:97
+#, python-format
+msgid "Launching VPN for %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/migration.py:35
+msgid "python-migrate is not installed. Exiting."
+msgstr ""
+
+#: ../nova/image/s3.py:99
+#, python-format
+msgid "Image %s could not be found"
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:121
+msgid "Too many failed authentications."
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:131
+#, python-format
+msgid ""
+"Access key %(access_key)s has had %(failures)d failed authentications and "
+"will be locked out for %(lock_mins)d minutes."
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:169 ../nova/objectstore/handler.py:140
+#, python-format
+msgid "Authentication Failure: %s"
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:182
+#, python-format
+msgid "Authenticated Request For %(uname)s:%(pname)s)"
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:207
+#, python-format
+msgid "action: %s"
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:209
+#, python-format
+msgid "arg: %(key)s\t\tval: %(value)s"
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:281
+#, python-format
+msgid ""
+"Unauthorized request for controller=%(controller)s and action=%(action)s"
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:314
+#, python-format
+msgid "InstanceNotFound raised: %s"
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:320
+#, python-format
+msgid "VolumeNotFound raised: %s"
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:326
+#, python-format
+msgid "NotFound raised: %s"
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:329
+#, python-format
+msgid "ApiError raised: %s"
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:338
+#, python-format
+msgid "Unexpected error raised: %s"
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:343
+msgid "An unknown error has occurred. Please try your request again."
+msgstr ""
+
+#: ../nova/auth/dbdriver.py:84
+#, python-format
+msgid "User %s already exists"
+msgstr ""
+
+#: ../nova/auth/dbdriver.py:106 ../nova/auth/ldapdriver.py:232
+#, python-format
+msgid "Project can't be created because manager %s doesn't exist"
+msgstr ""
+
+#: ../nova/auth/dbdriver.py:122 ../nova/auth/ldapdriver.py:243
+#, python-format
+msgid "Project can't be created because user %s doesn't exist"
+msgstr ""
+
+#: ../nova/auth/dbdriver.py:135 ../nova/auth/ldapdriver.py:229
+#, python-format
+msgid "Project can't be created because project %s already exists"
+msgstr ""
+
+#: ../nova/auth/dbdriver.py:157 ../nova/auth/ldapdriver.py:268
+#, python-format
+msgid "Project can't be modified because manager %s doesn't exist"
+msgstr ""
+
+#: ../nova/auth/dbdriver.py:245
+#, python-format
+msgid "User \"%s\" not found"
+msgstr ""
+
+#: ../nova/auth/dbdriver.py:248
+#, python-format
+msgid "Project \"%s\" not found"
+msgstr ""
+
+#: ../nova/virt/xenapi_conn.py:129
+msgid ""
+"Must specify xenapi_connection_url, xenapi_connection_username (optionally), "
+"and xenapi_connection_password to use connection_type=xenapi"
+msgstr ""
+
+#: ../nova/virt/xenapi_conn.py:311
+#, python-format
+msgid "Task [%(name)s] %(task)s status: success %(result)s"
+msgstr ""
+
+#: ../nova/virt/xenapi_conn.py:317
+#, python-format
+msgid "Task [%(name)s] %(task)s status: %(status)s %(error_info)s"
+msgstr ""
+
+#: ../nova/virt/xenapi_conn.py:331 ../nova/virt/xenapi_conn.py:344
+#, python-format
+msgid "Got exception: %s"
+msgstr ""
+
+#: ../nova/compute/monitor.py:259
+#, python-format
+msgid "updating %s..."
+msgstr ""
+
+#: ../nova/compute/monitor.py:289
+msgid "unexpected error during update"
+msgstr ""
+
+#: ../nova/compute/monitor.py:356
+#, python-format
+msgid "Cannot get blockstats for \"%(disk)s\" on \"%(iid)s\""
+msgstr ""
+
+#: ../nova/compute/monitor.py:379
+#, python-format
+msgid "Cannot get ifstats for \"%(interface)s\" on \"%(iid)s\""
+msgstr ""
+
+#: ../nova/compute/monitor.py:414
+msgid "unexpected exception getting connection"
+msgstr ""
+
+#: ../nova/compute/monitor.py:429
+#, python-format
+msgid "Found instance: %s"
+msgstr ""
+
+#: ../nova/volume/san.py:67
+#, python-format
+msgid "Could not find iSCSI export for volume %s"
+msgstr ""
+
+#: ../nova/api/ec2/apirequest.py:100
+#, python-format
+msgid ""
+"Unsupported API request: controller = %(controller)s, action = %(action)s"
+msgstr ""
+
+#: ../nova/api/openstack/__init__.py:55
+#, python-format
+msgid "Caught error: %s"
+msgstr ""
+
+#: ../nova/api/openstack/__init__.py:76
+msgid "Including admin operations in API."
+msgstr ""
+
+#: ../nova/console/xvp.py:99
+msgid "Rebuilding xvp conf"
+msgstr ""
+
+#: ../nova/console/xvp.py:116
+#, python-format
+msgid "Re-wrote %s"
+msgstr ""
+
+#: ../nova/console/xvp.py:121
+msgid "Stopping xvp"
+msgstr ""
+
+#: ../nova/console/xvp.py:134
+msgid "Starting xvp"
+msgstr ""
+
+#: ../nova/console/xvp.py:141
+#, python-format
+msgid "Error starting xvp: %s"
+msgstr ""
+
+#: ../nova/console/xvp.py:144
+msgid "Restarting xvp"
+msgstr ""
+
+#: ../nova/console/xvp.py:146
+msgid "xvp not running..."
+msgstr ""
+
+#: ../bin/nova-manage.py:272
+msgid ""
+"The above error may show that the database has not been created.\n"
+"Please create a database using nova-manage sync db before running this "
+"command."
+msgstr ""
+
+#: ../bin/nova-manage.py:426
+msgid ""
+"No more networks available. If this is a new installation, you need\n"
+"to call something like this:\n"
+"\n"
+" nova-manage network create 10.0.0.0/8 10 64\n"
+"\n"
+msgstr ""
+
+#: ../bin/nova-manage.py:431
+msgid ""
+"The above error may show that the certificate db has not been created.\n"
+"Please create a database by running a nova-api server on this host."
+msgstr ""
+
+#: ../bin/nova-manage.py:447 ../bin/nova-manage.py:536
+msgid "network"
+msgstr ""
+
+#: ../bin/nova-manage.py:448
+msgid "IP address"
+msgstr ""
+
+#: ../bin/nova-manage.py:449
+msgid "MAC address"
+msgstr ""
+
+#: ../bin/nova-manage.py:450
+msgid "hostname"
+msgstr ""
+
+#: ../bin/nova-manage.py:451
+msgid "host"
+msgstr ""
+
+#: ../bin/nova-manage.py:537
+msgid "netmask"
+msgstr ""
+
+#: ../bin/nova-manage.py:538
+msgid "start address"
+msgstr ""
+
+#: ../nova/virt/disk.py:69
+#, python-format
+msgid "Failed to load partition: %s"
+msgstr ""
+
+#: ../nova/virt/disk.py:91
+#, python-format
+msgid "Failed to mount filesystem: %s"
+msgstr ""
+
+#: ../nova/virt/disk.py:124
+#, python-format
+msgid "nbd device %s did not show up"
+msgstr ""
+
+#: ../nova/virt/disk.py:128
+#, python-format
+msgid "Could not attach image to loopback: %s"
+msgstr ""
+
+#: ../nova/virt/disk.py:151
+msgid "No free nbd devices"
+msgstr ""
+
+#: ../doc/ext/nova_todo.py:46
+#, python-format
+msgid "%(filename)s, line %(line_info)d"
+msgstr ""
+
+#. FIXME(chiradeep): implement this
+#: ../nova/virt/hyperv.py:118
+msgid "In init host"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:131
+#, python-format
+msgid "Attempt to create duplicate vm %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:148
+#, python-format
+msgid "Starting VM %s "
+msgstr ""
+
+#: ../nova/virt/hyperv.py:150
+#, python-format
+msgid "Started VM %s "
+msgstr ""
+
+#: ../nova/virt/hyperv.py:152
+#, python-format
+msgid "spawn vm failed: %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:169
+#, python-format
+msgid "Failed to create VM %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:188
+#, python-format
+msgid "Set memory for vm %s..."
+msgstr ""
+
+#: ../nova/virt/hyperv.py:198
+#, python-format
+msgid "Set vcpus for vm %s..."
+msgstr ""
+
+#: ../nova/virt/hyperv.py:202
+#, python-format
+msgid "Creating disk for %(vm_name)s by attaching disk file %(vhdfile)s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:227
+#, python-format
+msgid "Failed to add diskdrive to VM %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:230
+#, python-format
+msgid "New disk drive path is %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:247
+#, python-format
+msgid "Failed to add vhd file to VM %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:249
+#, python-format
+msgid "Created disk for %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:253
+#, python-format
+msgid "Creating nic for %s "
+msgstr ""
+
+#: ../nova/virt/hyperv.py:272
+msgid "Failed creating a port on the external vswitch"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:273
+#, python-format
+msgid "Failed creating port for %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:276
+#, python-format
+msgid "Created switch port %(vm_name)s on switch %(ext_path)s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:286
+#, python-format
+msgid "Failed to add nic to VM %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:288
+#, python-format
+msgid "Created nic for %s "
+msgstr ""
+
+#: ../nova/virt/hyperv.py:321
+#, python-format
+msgid "WMI job failed: %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:325
+#, python-format
+msgid "WMI job succeeded: %(desc)s, Elapsed=%(elap)s "
+msgstr ""
+
+#: ../nova/virt/hyperv.py:361
+#, python-format
+msgid "Got request to destroy vm %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:386
+#, python-format
+msgid "Failed to destroy vm %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:393
+#, python-format
+msgid "Del: disk %(vhdfile)s vm %(instance_name)s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:415
+#, python-format
+msgid ""
+"Got Info for vm %(instance_id)s: state=%(state)s, mem=%(memusage)s, "
+"num_cpu=%(numprocs)s, cpu_time=%(uptime)s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:451
+#, python-format
+msgid "Successfully changed vm state of %(vm_name)s to %(req_state)s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:454
+#, python-format
+msgid "Failed to change vm state of %(vm_name)s to %(req_state)s"
+msgstr ""
+
+#: ../nova/compute/api.py:71
+#, python-format
+msgid "Instance %d was not found in get_network_topic"
+msgstr ""
+
+#: ../nova/compute/api.py:77
+#, python-format
+msgid "Instance %d has no host"
+msgstr ""
+
+#: ../nova/compute/api.py:97
+#, python-format
+msgid "Quota exceeeded for %(pid)s, tried to run %(min_count)s instances"
+msgstr ""
+
+#: ../nova/compute/api.py:99
+#, python-format
+msgid ""
+"Instance quota exceeded. You can only run %s more instances of this type."
+msgstr ""
+
+#: ../nova/compute/api.py:112
+msgid "Creating a raw instance"
+msgstr ""
+
+#: ../nova/compute/api.py:160
+#, python-format
+msgid "Going to run %s instances..."
+msgstr ""
+
+#: ../nova/compute/api.py:187
+#, python-format
+msgid "Casting to scheduler for %(pid)s/%(uid)s's instance %(instance_id)s"
+msgstr ""
+
+#: ../nova/compute/api.py:292
+#, python-format
+msgid "Going to try to terminate %s"
+msgstr ""
+
+#: ../nova/compute/api.py:296
+#, python-format
+msgid "Instance %d was not found during terminate"
+msgstr ""
+
+#: ../nova/compute/api.py:301
+#, python-format
+msgid "Instance %d is already being terminated"
+msgstr ""
+
+#: ../nova/compute/api.py:481
+#, python-format
+msgid "Invalid device specified: %s. Example device: /dev/vdb"
+msgstr ""
+
+#: ../nova/compute/api.py:496
+msgid "Volume isn't attached to anything!"
+msgstr ""
+
+#: ../nova/rpc.py:98
+#, python-format
+msgid ""
+"AMQP server on %(fl_host)s:%(fl_port)d is unreachable. Trying again in "
+"%(fl_intv)d seconds."
+msgstr ""
+
+#: ../nova/rpc.py:103
+#, python-format
+msgid "Unable to connect to AMQP server after %d tries. Shutting down."
+msgstr ""
+
+#: ../nova/rpc.py:122
+msgid "Reconnected to queue"
+msgstr ""
+
+#: ../nova/rpc.py:129
+msgid "Failed to fetch message from queue"
+msgstr ""
+
+#: ../nova/rpc.py:159
+#, python-format
+msgid "Initing the Adapter Consumer for %s"
+msgstr ""
+
+#: ../nova/rpc.py:178
+#, python-format
+msgid "received %s"
+msgstr ""
+
+#. NOTE(vish): we may not want to ack here, but that means that bad
+#. messages stay in the queue indefinitely, so for now
+#. we just log the message and send an error string
+#. back to the caller
+#: ../nova/rpc.py:191
+#, python-format
+msgid "no method for message: %s"
+msgstr ""
+
+#: ../nova/rpc.py:192
+#, python-format
+msgid "No method for message: %s"
+msgstr ""
+
+#: ../nova/rpc.py:253
+#, python-format
+msgid "Returning exception %s to caller"
+msgstr ""
+
+#: ../nova/rpc.py:294
+#, python-format
+msgid "unpacked context: %s"
+msgstr ""
+
+#: ../nova/rpc.py:313
+msgid "Making asynchronous call..."
+msgstr ""
+
+#: ../nova/rpc.py:316
+#, python-format
+msgid "MSG_ID is %s"
+msgstr ""
+
+#: ../nova/rpc.py:354
+msgid "Making asynchronous cast..."
+msgstr ""
+
+#: ../nova/rpc.py:364
+#, python-format
+msgid "response %s"
+msgstr ""
+
+#: ../nova/rpc.py:373
+#, python-format
+msgid "topic is %s"
+msgstr ""
+
+#: ../nova/rpc.py:374
+#, python-format
+msgid "message %s"
+msgstr ""
+
+#: ../nova/volume/driver.py:78
+#, python-format
+msgid "Recovering from a failed execute. Try number %s"
+msgstr ""
+
+#: ../nova/volume/driver.py:87
+#, python-format
+msgid "volume group %s doesn't exist"
+msgstr ""
+
+#: ../nova/volume/driver.py:220
+#, python-format
+msgid "FAKE AOE: %s"
+msgstr ""
+
+#: ../nova/volume/driver.py:233
+msgid "Skipping ensure_export. No iscsi_target "
+msgstr ""
+
+#: ../nova/volume/driver.py:279 ../nova/volume/driver.py:288
+msgid "Skipping remove_export. No iscsi_target "
+msgstr ""
+
+#: ../nova/volume/driver.py:347
+#, python-format
+msgid "FAKE ISCSI: %s"
+msgstr ""
+
+#: ../nova/volume/driver.py:359
+#, python-format
+msgid "rbd has no pool %s"
+msgstr ""
+
+#: ../nova/volume/driver.py:414
+#, python-format
+msgid "Sheepdog is not working: %s"
+msgstr ""
+
+#: ../nova/volume/driver.py:416
+msgid "Sheepdog is not working"
+msgstr ""
+
+#: ../nova/wsgi.py:68
+#, python-format
+msgid "Starting %(arg0)s on %(host)s:%(port)s"
+msgstr ""
+
+#: ../nova/wsgi.py:147
+msgid "You must implement __call__"
+msgstr ""
+
+#: ../bin/nova-instancemonitor.py:55
+msgid "Starting instance monitor"
+msgstr ""
+
+#: ../bin/nova-dhcpbridge.py:58
+msgid "leasing ip"
+msgstr ""
+
+#: ../bin/nova-dhcpbridge.py:73
+msgid "Adopted old lease or got a change of mac/hostname"
+msgstr ""
+
+#: ../bin/nova-dhcpbridge.py:80
+msgid "releasing ip"
+msgstr ""
+
+#: ../bin/nova-dhcpbridge.py:123
+#, python-format
+msgid ""
+"Called %(action)s for mac %(mac)s with ip %(ip)s and hostname %(hostname)s "
+"on interface %(interface)s"
+msgstr ""
+
+#: ../nova/virt/fake.py:239
+#, python-format
+msgid "Instance %s Not Found"
+msgstr ""
+
+#: ../nova/network/manager.py:153
+#, python-format
+msgid "Dissassociated %s stale fixed ip(s)"
+msgstr ""
+
+#: ../nova/network/manager.py:157
+msgid "setting network host"
+msgstr ""
+
+#: ../nova/network/manager.py:212
+#, python-format
+msgid "Leasing IP %s"
+msgstr ""
+
+#: ../nova/network/manager.py:216
+#, python-format
+msgid "IP %s leased that isn't associated"
+msgstr ""
+
+#: ../nova/network/manager.py:220
+#, python-format
+msgid "IP %(address)s leased to bad mac %(inst_addr)s vs %(mac)s"
+msgstr ""
+
+#: ../nova/network/manager.py:228
+#, python-format
+msgid "IP %s leased that was already deallocated"
+msgstr ""
+
+#: ../nova/network/manager.py:233
+#, python-format
+msgid "Releasing IP %s"
+msgstr ""
+
+#: ../nova/network/manager.py:237
+#, python-format
+msgid "IP %s released that isn't associated"
+msgstr ""
+
+#: ../nova/network/manager.py:241
+#, python-format
+msgid "IP %(address)s released from bad mac %(inst_addr)s vs %(mac)s"
+msgstr ""
+
+#: ../nova/network/manager.py:244
+#, python-format
+msgid "IP %s released that was not leased"
+msgstr ""
+
+#: ../nova/network/manager.py:519
+msgid ""
+"The sum between the number of networks and the vlan start cannot be greater "
+"than 4094"
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:57
+#, python-format
+msgid "Introducing %s..."
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:74
+#, python-format
+msgid "Introduced %(label)s as %(sr_ref)s."
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:78
+msgid "Unable to create Storage Repository"
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:90
+#, python-format
+msgid "Unable to find SR from VBD %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:96
+#, python-format
+msgid "Forgetting SR %s ... "
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:101
+#, python-format
+msgid "Ignoring exception %(exc)s when getting PBDs for %(sr_ref)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:107
+#, python-format
+msgid "Ignoring exception %(exc)s when unplugging PBD %(pbd)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:111
+#, python-format
+msgid "Forgetting SR %s done."
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:113
+#, python-format
+msgid "Ignoring exception %(exc)s when forgetting SR %(sr_ref)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:123
+#, python-format
+msgid "Unable to introduce VDI on SR %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:128
+#, python-format
+msgid "Unable to get record of VDI %s on"
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:146
+#, python-format
+msgid "Unable to introduce VDI for SR %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:175
+#, python-format
+msgid "Unable to obtain target information %(device_path)s, %(mountpoint)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:197
+#, python-format
+msgid "Mountpoint cannot be translated: %s"
+msgstr ""
+
+#: ../nova/objectstore/image.py:262
+#, python-format
+msgid "Failed to decrypt private key: %s"
+msgstr ""
+
+#: ../nova/objectstore/image.py:269
+#, python-format
+msgid "Failed to decrypt initialization vector: %s"
+msgstr ""
+
+#: ../nova/objectstore/image.py:277
+#, python-format
+msgid "Failed to decrypt image file %(image_file)s: %(err)s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:106
+#, python-format
+msgid "Unknown S3 value type %r"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:137
+msgid "Authenticated request"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:182
+msgid "List of buckets requested"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:209
+#, python-format
+msgid "List keys for bucket %s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:217
+#, python-format
+msgid "Unauthorized attempt to access bucket %s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:235
+#, python-format
+msgid "Creating bucket %s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:245
+#, python-format
+msgid "Deleting bucket %s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:249
+#, python-format
+msgid "Unauthorized attempt to delete bucket %s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:273
+#, python-format
+msgid "Getting object: %(bname)s / %(nm)s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:276
+#, python-format
+msgid "Unauthorized attempt to get object %(nm)s from bucket %(bname)s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:296
+#, python-format
+msgid "Putting object: %(bname)s / %(nm)s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:299
+#, python-format
+msgid "Unauthorized attempt to upload object %(nm)s to bucket %(bname)s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:318
+#, python-format
+msgid "Deleting object: %(bname)s / %(nm)s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:322
+#, python-format
+msgid "Unauthorized attempt to delete object %(nm)s from bucket %(bname)s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:396
+#, python-format
+msgid "Not authorized to upload image: invalid directory %s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:404
+#, python-format
+msgid "Not authorized to upload image: unauthorized bucket %s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:409
+#, python-format
+msgid "Starting image upload: %s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:423
+#, python-format
+msgid "Not authorized to update attributes of image %s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:431
+#, python-format
+msgid "Toggling publicity flag of image %(image_id)s %(newstatus)r"
+msgstr ""
+
+#. other attributes imply update
+#: ../nova/objectstore/handler.py:436
+#, python-format
+msgid "Updating user fields on image %s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:450
+#, python-format
+msgid "Unauthorized attempt to delete image %s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:455
+#, python-format
+msgid "Deleted image: %s"
+msgstr ""
+
+#: ../nova/auth/manager.py:259
+#, python-format
+msgid "Looking up user: %r"
+msgstr ""
+
+#: ../nova/auth/manager.py:263
+#, python-format
+msgid "Failed authorization for access key %s"
+msgstr ""
+
+#: ../nova/auth/manager.py:264
+#, python-format
+msgid "No user found for access key %s"
+msgstr ""
+
+#: ../nova/auth/manager.py:270
+#, python-format
+msgid "Using project name = user name (%s)"
+msgstr ""
+
+#: ../nova/auth/manager.py:277
+#, python-format
+msgid "failed authorization: no project named %(pjid)s (user=%(uname)s)"
+msgstr ""
+
+#: ../nova/auth/manager.py:279
+#, python-format
+msgid "No project called %s could be found"
+msgstr ""
+
+#: ../nova/auth/manager.py:287
+#, python-format
+msgid ""
+"Failed authorization: user %(uname)s not admin and not member of project "
+"%(pjname)s"
+msgstr ""
+
+#: ../nova/auth/manager.py:289
+#, python-format
+msgid "User %(uid)s is not a member of project %(pjid)s"
+msgstr ""
+
+#: ../nova/auth/manager.py:298 ../nova/auth/manager.py:309
+#, python-format
+msgid "Invalid signature for user %s"
+msgstr ""
+
+#: ../nova/auth/manager.py:299 ../nova/auth/manager.py:310
+msgid "Signature does not match"
+msgstr ""
+
+#: ../nova/auth/manager.py:380
+msgid "Must specify project"
+msgstr ""
+
+#: ../nova/auth/manager.py:414
+#, python-format
+msgid "The %s role can not be found"
+msgstr ""
+
+#: ../nova/auth/manager.py:416
+#, python-format
+msgid "The %s role is global only"
+msgstr ""
+
+#: ../nova/auth/manager.py:420
+#, python-format
+msgid "Adding role %(role)s to user %(uid)s in project %(pid)s"
+msgstr ""
+
+#: ../nova/auth/manager.py:423
+#, python-format
+msgid "Adding sitewide role %(role)s to user %(uid)s"
+msgstr ""
+
+#: ../nova/auth/manager.py:448
+#, python-format
+msgid "Removing role %(role)s from user %(uid)s on project %(pid)s"
+msgstr ""
+
+#: ../nova/auth/manager.py:451
+#, python-format
+msgid "Removing sitewide role %(role)s from user %(uid)s"
+msgstr ""
+
+#: ../nova/auth/manager.py:515
+#, python-format
+msgid "Created project %(name)s with manager %(manager_user)s"
+msgstr ""
+
+#: ../nova/auth/manager.py:533
+#, python-format
+msgid "modifying project %s"
+msgstr ""
+
+#: ../nova/auth/manager.py:545
+#, python-format
+msgid "Adding user %(uid)s to project %(pid)s"
+msgstr ""
+
+#: ../nova/auth/manager.py:566
+#, python-format
+msgid "Remove user %(uid)s from project %(pid)s"
+msgstr ""
+
+#: ../nova/auth/manager.py:592
+#, python-format
+msgid "Deleting project %s"
+msgstr ""
+
+#: ../nova/auth/manager.py:650
+#, python-format
+msgid "Created user %(rvname)s (admin: %(rvadmin)r)"
+msgstr ""
+
+#: ../nova/auth/manager.py:659
+#, python-format
+msgid "Deleting user %s"
+msgstr ""
+
+#: ../nova/auth/manager.py:669
+#, python-format
+msgid "Access Key change for user %s"
+msgstr ""
+
+#: ../nova/auth/manager.py:671
+#, python-format
+msgid "Secret Key change for user %s"
+msgstr ""
+
+#: ../nova/auth/manager.py:673
+#, python-format
+msgid "Admin status set to %(admin)r for user %(uid)s"
+msgstr ""
+
+#: ../nova/auth/manager.py:722
+#, python-format
+msgid "No vpn data for project %s"
+msgstr ""
+
+#: ../nova/service.py:161
+#, python-format
+msgid "Starting %(topic)s node (version %(vcs_string)s)"
+msgstr ""
+
+#: ../nova/service.py:174
+msgid "Service killed that has no database entry"
+msgstr ""
+
+#: ../nova/service.py:195
+msgid "The service database object disappeared, Recreating it."
+msgstr ""
+
+#: ../nova/service.py:207
+msgid "Recovered model server connection!"
+msgstr ""
+
+#: ../nova/service.py:213
+msgid "model server went away"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:174
+#, python-format
+msgid "LDAP user %s already exists"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:205
+#, python-format
+msgid "LDAP object for %s doesn't exist"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:348
+#, python-format
+msgid "User %s doesn't exist"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:472
+#, python-format
+msgid "Group can't be created because group %s already exists"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:478
+#, python-format
+msgid "Group can't be created because user %s doesn't exist"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:495
+#, python-format
+msgid "User %s can't be searched in group because the user doesn't exist"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:507
+#, python-format
+msgid "User %s can't be added to the group because the user doesn't exist"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:510 ../nova/auth/ldapdriver.py:521
+#, python-format
+msgid "The group at dn %s doesn't exist"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:513
+#, python-format
+msgid "User %(uid)s is already a member of the group %(group_dn)s"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:524
+#, python-format
+msgid ""
+"User %s can't be removed from the group because the user doesn't exist"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:528
+#, python-format
+msgid "User %s is not a member of the group"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:542
+#, python-format
+msgid ""
+"Attempted to remove the last member of a group. Deleting the group at %s "
+"instead."
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:549
+#, python-format
+msgid "User %s can't be removed from all because the user doesn't exist"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:564
+#, python-format
+msgid "Group at dn %s doesn't exist"
+msgstr ""
+
+#: ../nova/virt/xenapi/network_utils.py:40
+#, python-format
+msgid "Found non-unique network for bridge %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/network_utils.py:43
+#, python-format
+msgid "Found no network for bridge %s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:97
+#, python-format
+msgid "Creating new user: %s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:105
+#, python-format
+msgid "Deleting user: %s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:127
+#, python-format
+msgid "Adding role %(role)s to user %(user)s for project %(project)s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:131
+#, python-format
+msgid "Adding sitewide role %(role)s to user %(user)s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:137
+#, python-format
+msgid "Removing role %(role)s from user %(user)s for project %(project)s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:141
+#, python-format
+msgid "Removing sitewide role %(role)s from user %(user)s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:146 ../nova/api/ec2/admin.py:223
+msgid "operation must be add or remove"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:159
+#, python-format
+msgid "Getting x509 for user: %(name)s on project: %(project)s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:177
+#, python-format
+msgid "Create project %(name)s managed by %(manager_user)s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:190
+#, python-format
+msgid "Modify project: %(name)s managed by %(manager_user)s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:200
+#, python-format
+msgid "Delete project: %s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:214
+#, python-format
+msgid "Adding user %(user)s to project %(project)s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:218
+#, python-format
+msgid "Removing user %(user)s from project %(project)s"
+msgstr ""
diff --git a/po/es.po b/po/es.po
index a54260db8..eeaf209a9 100644
--- a/po/es.po
+++ b/po/es.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-17 15:54+0000\n"
-"Last-Translator: Erick Huezo <erickhuezo@gmail.com>\n"
+"PO-Revision-Date: 2011-06-30 16:42+0000\n"
+"Last-Translator: David Caro <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-03-19 06:19+0000\n"
-"X-Generator: Launchpad (build 12559)\n"
+"X-Launchpad-Export-Date: 2011-07-23 05:12+0000\n"
+"X-Generator: Launchpad (build 13405)\n"
#: ../nova/scheduler/chance.py:37 ../nova/scheduler/zone.py:55
#: ../nova/scheduler/simple.py:75 ../nova/scheduler/simple.py:110
@@ -36,10 +36,15 @@ msgid ""
"Stdout: %(stdout)r\n"
"Stderr: %(stderr)r"
msgstr ""
+"%(description)s\n"
+"Comando: %(cmd)s\n"
+"Código de salida: %(exit_code)s\n"
+"Stdout: %(stdout)r\n"
+"Stderr: %(stderr)r"
#: ../nova/exception.py:107
msgid "DB exception wrapped"
-msgstr ""
+msgstr "Excepción DB encapsulada"
#. exc_type, exc_value, exc_traceback = sys.exc_info()
#: ../nova/exception.py:120
@@ -49,12 +54,12 @@ msgstr "Excepción no controlada"
#: ../nova/volume/api.py:45
#, python-format
msgid "Quota exceeeded for %(pid)s, tried to create %(size)sG volume"
-msgstr ""
+msgstr "Cuota excedida por %(pid)s, se intentó crear el volumen %(size)sG"
#: ../nova/volume/api.py:47
#, python-format
msgid "Volume quota exceeded. You cannot create a volume of size %sG"
-msgstr "Cuota excedida. No puedes crear un volumen con tamaño %sG"
+msgstr "Cuota excedida. No puede crear un volumen con tamaño %sG"
#: ../nova/volume/api.py:71 ../nova/volume/api.py:96
msgid "Volume status must be available"
@@ -83,7 +88,7 @@ msgstr "%(param)s propiedad no encontrada para la imagen %(_image_id)s"
#: ../nova/api/openstack/servers.py:168
msgid "No keypairs defined"
-msgstr "No se definio una Keypairs"
+msgstr "No se definio un par de llaves (Keypair)"
#: ../nova/api/openstack/servers.py:238
#, python-format
@@ -103,7 +108,7 @@ msgstr "Compute.api::get_lock %s"
#: ../nova/api/openstack/servers.py:281
#, python-format
msgid "Compute.api::reset_network %s"
-msgstr ""
+msgstr "Compute.api::reset_network %s"
#: ../nova/api/openstack/servers.py:292
#, python-format
@@ -127,16 +132,16 @@ msgstr "compute.api::resume %s"
#: ../nova/twistd.py:157
msgid "Wrong number of arguments."
-msgstr "Numero de argumentos incorrectos"
+msgstr "Cantidad de argumentos incorrecta"
#: ../nova/twistd.py:209
#, python-format
msgid "pidfile %s does not exist. Daemon not running?\n"
-msgstr "el pidfile %s no existe. ¿No estará el demonio parado?\n"
+msgstr "El \"pidfile\" %s no existe. Quizás el servicio no este corriendo.\n"
#: ../nova/twistd.py:221
msgid "No such process"
-msgstr "No se encontró proceso"
+msgstr "No existe el proceso"
#: ../nova/twistd.py:230 ../nova/service.py:224
#, python-format
@@ -145,12 +150,12 @@ msgstr "Sirviendo %s"
#: ../nova/twistd.py:262 ../nova/service.py:225
msgid "Full set of FLAGS:"
-msgstr "Conjunto completo de opciones:"
+msgstr "Conjunto completo de opciones (FLAGS):"
#: ../nova/twistd.py:266
#, python-format
msgid "Starting %s"
-msgstr "Comenzando %s"
+msgstr "Iniciando %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
@@ -163,17 +168,19 @@ msgstr "La instancia %s no se ha encontrado"
#: ../nova/virt/xenapi/volumeops.py:51
#, python-format
msgid "Attach_volume: %(instance_name)s, %(device_path)s, %(mountpoint)s"
-msgstr ""
+msgstr "Volumen_unido: %(instance_name)s, %(device_path)s, %(mountpoint)s"
#: ../nova/virt/xenapi/volumeops.py:69
#, python-format
msgid "Unable to create VDI on SR %(sr_ref)s for instance %(instance_name)s"
msgstr ""
+"No es posible crear el VDI en SR %(sr_ref)s para la instancia "
+"%(instance_name)s"
#: ../nova/virt/xenapi/volumeops.py:80
#, python-format
msgid "Unable to use SR %(sr_ref)s for instance %(instance_name)s"
-msgstr ""
+msgstr "No es posible usar SR %(sr_ref)s para la instancia %(instance_name)s"
#: ../nova/virt/xenapi/volumeops.py:91
#, python-format
@@ -184,12 +191,14 @@ msgstr "Imposible adjuntar volumen a la instancia %s"
#, python-format
msgid "Mountpoint %(mountpoint)s attached to instance %(instance_name)s"
msgstr ""
+"El punto de montaje %(mountpoint)s esta unido a la instancia "
+"%(instance_name)s"
#. Detach VBD from VM
#: ../nova/virt/xenapi/volumeops.py:104
#, python-format
msgid "Detach_volume: %(instance_name)s, %(mountpoint)s"
-msgstr ""
+msgstr "Volume_separado: %(instance_name)s, %(mountpoint)s"
#: ../nova/virt/xenapi/volumeops.py:112
#, python-format
@@ -205,6 +214,8 @@ msgstr "Imposible desasociar volumen %s"
#, python-format
msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
msgstr ""
+"El punto de montaje %(mountpoint)s se desligó de la instancia "
+"%(instance_name)s"
#: ../nova/compute/instance_types.py:41
#, python-format
@@ -259,7 +270,7 @@ msgstr ""
#: ../nova/crypto.py:258
#, python-format
msgid "Flags path: %s"
-msgstr ""
+msgstr "Ruta a las opciones: %s"
#: ../nova/scheduler/manager.py:69
#, python-format
@@ -276,6 +287,7 @@ msgstr "check_instance_lock: decorating: |%s|"
msgid ""
"check_instance_lock: arguments: |%(self)s| |%(context)s| |%(instance_id)s|"
msgstr ""
+"check_instance_lock: argumentos: |%(self)s| |%(context)s| |%(instance_id)s|"
#: ../nova/compute/manager.py:84
#, python-format
@@ -338,6 +350,8 @@ msgid ""
"trying to reboot a non-running instance: %(instance_id)s (state: %(state)s "
"expected: %(running)s)"
msgstr ""
+"intentando reiniciar una instancia no ejecutada: %(instance_id)s (state: "
+"%(state)s expected: %(running)s)"
#: ../nova/compute/manager.py:311
#, python-format
@@ -350,6 +364,8 @@ msgid ""
"trying to snapshot a non-running instance: %(instance_id)s (state: %(state)s "
"expected: %(running)s)"
msgstr ""
+"intentando crear una imagen instantanea(snapshot) de una maquina no "
+"ejecutada: %(instance_id)s (state: %(state)s expected: %(running)s)"
#: ../nova/compute/manager.py:332
#, python-format
@@ -357,11 +373,13 @@ msgid ""
"trying to reset the password on a non-running instance: %(instance_id)s "
"(state: %(instance_state)s expected: %(expected_state)s)"
msgstr ""
+"intentando restablecer el password en una instancia: %(instance_id)s "
+"(estado: %(instance_state)s esperado: %(expected_state)s)"
#: ../nova/compute/manager.py:335
#, python-format
msgid "instance %s: setting admin password"
-msgstr ""
+msgstr "instancia %s: estableciendo password de administrador"
#: ../nova/compute/manager.py:353
#, python-format
@@ -369,11 +387,13 @@ msgid ""
"trying to inject a file into a non-running instance: %(instance_id)s (state: "
"%(instance_state)s expected: %(expected_state)s)"
msgstr ""
+"intentando inyectar un archivo dentro de una instancia parada: "
+"%(instance_id)s (estado: %(instance_state)s esperado: %(expected_state)s)"
#: ../nova/compute/manager.py:362
#, python-format
msgid "instance %(nm)s: injecting file to %(plain_path)s"
-msgstr ""
+msgstr "instancia %(nm)s: inyectando archivo en %(plain_path)s"
#: ../nova/compute/manager.py:372
#, python-format
@@ -393,7 +413,7 @@ msgstr "instancia %s: pausando"
#: ../nova/compute/manager.py:423
#, python-format
msgid "instance %s: unpausing"
-msgstr "instnacia %s: continuando tras pausa"
+msgstr "instancia %s: continuando tras pausa"
#: ../nova/compute/manager.py:440
#, python-format
@@ -403,7 +423,7 @@ msgstr "instancia %s: obteniendo los diagnosticos"
#: ../nova/compute/manager.py:453
#, python-format
msgid "instance %s: suspending"
-msgstr ""
+msgstr "instancia %s: suspendiendo"
#: ../nova/compute/manager.py:472
#, python-format
@@ -501,7 +521,7 @@ msgstr "Exportando de nuevo los volumenes %s"
#: ../nova/volume/manager.py:90
#, python-format
msgid "volume %s: skipping export"
-msgstr ""
+msgstr "volume %s: saltando exportación"
#: ../nova/volume/manager.py:96
#, python-format
@@ -511,7 +531,7 @@ msgstr "volumen %s: creando"
#: ../nova/volume/manager.py:108
#, python-format
msgid "volume %(vol_name)s: creating lv of size %(vol_size)sG"
-msgstr ""
+msgstr "volume %(vol_name)s: creando lv del tamaño %(vol_size)sG"
#: ../nova/volume/manager.py:112
#, python-format
@@ -549,7 +569,7 @@ msgstr "volumen %s: eliminado satisfactoriamente"
#: ../nova/virt/xenapi/fake.py:74
#, python-format
msgid "%(text)s: _db_content => %(content)s"
-msgstr ""
+msgstr "%(text)s: _db_content => %(content)s"
#: ../nova/virt/xenapi/fake.py:304 ../nova/virt/xenapi/fake.py:404
#: ../nova/virt/xenapi/fake.py:422 ../nova/virt/xenapi/fake.py:478
@@ -564,7 +584,7 @@ msgstr "xenapi.fake no tiene una implementación para %s"
#: ../nova/virt/xenapi/fake.py:341
#, python-format
msgid "Calling %(localname)s %(impl)s"
-msgstr ""
+msgstr "Llamando %(localname)s %(impl)s"
#: ../nova/virt/xenapi/fake.py:346
#, python-format
@@ -618,12 +638,12 @@ msgstr "El pid %d está pasado, relanzando dnsmasq"
#: ../nova/network/linux_net.py:358
#, python-format
msgid "killing radvd threw %s"
-msgstr ""
+msgstr "Matando radvd lanzado %s"
#: ../nova/network/linux_net.py:360
#, python-format
msgid "Pid %d is stale, relaunching radvd"
-msgstr ""
+msgstr "Pid %d corrupto, relanzando radvd"
#. pylint: disable=W0703
#: ../nova/network/linux_net.py:449
@@ -659,7 +679,7 @@ msgstr "El resultado fue %s"
#: ../nova/utils.py:159
#, python-format
msgid "Running cmd (SSH): %s"
-msgstr ""
+msgstr "corriendo cmd (SSH): %s"
#: ../nova/utils.py:217
#, python-format
@@ -674,12 +694,12 @@ msgstr "Ejecutando %s"
#: ../nova/utils.py:262
#, python-format
msgid "Link Local address is not found.:%s"
-msgstr ""
+msgstr "No se encuentra la dirección del enlace local.:%s"
#: ../nova/utils.py:265
#, python-format
msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
-msgstr ""
+msgstr "No se pudo obtener enlace de la ip local de %(interface)s :%(ex)s"
#: ../nova/utils.py:363
#, python-format
@@ -694,7 +714,7 @@ msgstr "backend %s"
#: ../nova/fakerabbit.py:49
#, python-format
msgid "(%(nm)s) publish (key: %(routing_key)s) %(message)s"
-msgstr ""
+msgstr "(%(nm)s) publica (key: %(routing_key)s) %(message)s"
#: ../nova/fakerabbit.py:54
#, python-format
@@ -714,12 +734,12 @@ msgstr "Declarando intercambio %s"
#: ../nova/fakerabbit.py:96
#, python-format
msgid "Binding %(queue)s to %(exchange)s with key %(routing_key)s"
-msgstr ""
+msgstr "Enlazando %(queue)s a %(exchange)s con la llave %(routing_key)s"
#: ../nova/fakerabbit.py:121
#, python-format
msgid "Getting from %(queue)s: %(message)s"
-msgstr ""
+msgstr "Obtendiendo desde %(queue)s: %(message)s"
#: ../nova/virt/xenapi/vm_utils.py:135 ../nova/virt/hyperv.py:171
#, python-format
@@ -729,17 +749,17 @@ msgstr "Creada VM %s..."
#: ../nova/virt/xenapi/vm_utils.py:138
#, python-format
msgid "Created VM %(instance_name)s as %(vm_ref)s."
-msgstr ""
+msgstr "VM creada %(instance_name)s como %(vm_ref)s."
#: ../nova/virt/xenapi/vm_utils.py:168
#, python-format
msgid "Creating VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
-msgstr ""
+msgstr "Creando VBD para VM %(vm_ref)s, VDI %(vdi_ref)s ... "
#: ../nova/virt/xenapi/vm_utils.py:171
#, python-format
msgid "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
-msgstr ""
+msgstr "Creado el VBD %(vbd_ref)s para VM %(vm_ref)s, VDI %(vdi_ref)s"
#: ../nova/virt/xenapi/vm_utils.py:187
#, python-format
@@ -759,12 +779,12 @@ msgstr "Imposible destruir VBD %s"
#: ../nova/virt/xenapi/vm_utils.py:224
#, python-format
msgid "Creating VIF for VM %(vm_ref)s, network %(network_ref)s."
-msgstr ""
+msgstr "Creando VIF para VM %(vm_ref)s, red %(network_ref)s."
#: ../nova/virt/xenapi/vm_utils.py:227
#, python-format
msgid "Created VIF %(vif_ref)s for VM %(vm_ref)s, network %(network_ref)s."
-msgstr ""
+msgstr "Creado el VIF %(vif_ref)s para VM %(vm_ref)s, red %(network_ref)s."
#: ../nova/virt/xenapi/vm_utils.py:246
#, python-format
@@ -772,50 +792,52 @@ msgid ""
"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s) on "
"%(sr_ref)s."
msgstr ""
+"VDI creado %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s) "
+"sobre %(sr_ref)s."
#. TODO(sirp): Add quiesce and VSS locking support when Windows support
#. is added
#: ../nova/virt/xenapi/vm_utils.py:258
#, python-format
msgid "Snapshotting VM %(vm_ref)s with label '%(label)s'..."
-msgstr ""
+msgstr "Creando snapshot de la VM %(vm_ref)s con etiqueta '%(label)s'..."
#: ../nova/virt/xenapi/vm_utils.py:272
#, python-format
msgid "Created snapshot %(template_vm_ref)s from VM %(vm_ref)s."
-msgstr ""
+msgstr "Instantánea creada %(template_vm_ref)s de la VM %(vm_ref)s."
#: ../nova/virt/xenapi/vm_utils.py:286
#, python-format
msgid "Asking xapi to upload %(vdi_uuids)s as ID %(image_id)s"
-msgstr ""
+msgstr "Pidiendo xapi a subir %(vdi_uuids)s como ID %(image_id)s"
#: ../nova/virt/xenapi/vm_utils.py:327
#, python-format
msgid "Size for image %(image)s:%(virtual_size)d"
-msgstr ""
+msgstr "Tamaño para imagen %(image)s:%(virtual_size)d"
#: ../nova/virt/xenapi/vm_utils.py:332
#, python-format
msgid "Glance image %s"
-msgstr ""
+msgstr "Imagen Glance %s"
#. we need to invoke a plugin for copying VDI's
#. content into proper path
#: ../nova/virt/xenapi/vm_utils.py:342
#, python-format
msgid "Copying VDI %s to /boot/guest on dom0"
-msgstr ""
+msgstr "Copiando VDI %s a /boot/guest on dom0"
#: ../nova/virt/xenapi/vm_utils.py:352
#, python-format
msgid "Kernel/Ramdisk VDI %s destroyed"
-msgstr ""
+msgstr "Kernel/Ramdisk VDI %s destruído"
#: ../nova/virt/xenapi/vm_utils.py:361
#, python-format
msgid "Asking xapi to fetch %(url)s as %(access)s"
-msgstr ""
+msgstr "Pidiendo a xapi que descargue %(url)s como %(access)s"
#: ../nova/virt/xenapi/vm_utils.py:386 ../nova/virt/xenapi/vm_utils.py:402
#, python-format
@@ -825,21 +847,21 @@ msgstr "Buscando vid %s para el kernel PV"
#: ../nova/virt/xenapi/vm_utils.py:397
#, python-format
msgid "PV Kernel in VDI:%s"
-msgstr ""
+msgstr "Kernel PV en VDI:%s"
#: ../nova/virt/xenapi/vm_utils.py:405
#, python-format
msgid "Running pygrub against %s"
-msgstr ""
+msgstr "Ejecutando pygrub contra %s"
#: ../nova/virt/xenapi/vm_utils.py:411
#, python-format
msgid "Found Xen kernel %s"
-msgstr ""
+msgstr "Kernel Xen Encontrado %s"
#: ../nova/virt/xenapi/vm_utils.py:413
msgid "No Xen kernel found. Booting HVM."
-msgstr ""
+msgstr "Kernel Xen no encontrado. Reiniciando HVM"
#: ../nova/virt/xenapi/vm_utils.py:425 ../nova/virt/hyperv.py:431
#, python-format
@@ -864,7 +886,7 @@ 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 "VHD %(vdi_uuid)s tiene origen en %(parent_ref)s"
#: ../nova/virt/xenapi/vm_utils.py:542
#, python-format
@@ -893,18 +915,19 @@ msgstr "No se han encontrado VDI's para VM %s"
#, python-format
msgid "Unexpected number of VDIs (%(num_vdis)s) found for VM %(vm_ref)s"
msgstr ""
+"Numero de VDIs inesperado (%(num_vdis)s) encontrados por VM %(vm_ref)s"
#: ../nova/virt/xenapi/vm_utils.py:653
#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:188
#, python-format
msgid "Creating VBD for VDI %s ... "
-msgstr ""
+msgstr "Creando VBD para VDI %s ... "
#: ../nova/virt/xenapi/vm_utils.py:655
#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:190
#, python-format
msgid "Creating VBD for VDI %s done."
-msgstr ""
+msgstr "Creando VBF para VDI %s terminado"
#: ../nova/virt/xenapi/vm_utils.py:657
#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:192
@@ -2850,12 +2873,12 @@ msgstr ""
#: ../nova/api/ec2/admin.py:177
#, python-format
msgid "Create project %(name)s managed by %(manager_user)s"
-msgstr ""
+msgstr "Crear proyecto %(name)s administrador por %(manager_user)s"
#: ../nova/api/ec2/admin.py:190
#, python-format
msgid "Modify project: %(name)s managed by %(manager_user)s"
-msgstr ""
+msgstr "Modificar proyecto: %(name)s administrado por %(manager_user)s"
#: ../nova/api/ec2/admin.py:200
#, python-format
@@ -2865,12 +2888,12 @@ msgstr "Borrar proyecto: %s"
#: ../nova/api/ec2/admin.py:214
#, python-format
msgid "Adding user %(user)s to project %(project)s"
-msgstr ""
+msgstr "Agregando usuario %(user)s al proyecto %(project)s"
#: ../nova/api/ec2/admin.py:218
#, python-format
msgid "Removing user %(user)s from project %(project)s"
-msgstr ""
+msgstr "Eliminando el usuario %(user)s del proyecto %(project)s"
#, python-format
#~ msgid ""
diff --git a/po/fr.po b/po/fr.po
new file mode 100644
index 000000000..9dd789b3c
--- /dev/null
+++ b/po/fr.po
@@ -0,0 +1,2992 @@
+# French translation for nova
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the nova package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+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-05-27 16:50+0000\n"
+"Last-Translator: Capashen <Unknown>\n"
+"Language-Team: French <fr@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"
+
+#: ../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 "Pas d'hôte trouvé"
+
+#: ../nova/exception.py:33
+msgid "Unexpected error while running command."
+msgstr "Erreur imprévue lors de l'éxecution de la commande"
+
+#: ../nova/exception.py:36
+#, python-format
+msgid ""
+"%(description)s\n"
+"Command: %(cmd)s\n"
+"Exit code: %(exit_code)s\n"
+"Stdout: %(stdout)r\n"
+"Stderr: %(stderr)r"
+msgstr ""
+"%(description)s\n"
+"Commande : %(cmd)s\n"
+"Valeur retournée : %(exit_code)s\n"
+"Sortie standard : %(stdout)r\n"
+"Sortie d'erreur : %(stderr)r"
+
+#: ../nova/exception.py:107
+msgid "DB exception wrapped"
+msgstr "Remontée d'exception de la base de données"
+
+#. exc_type, exc_value, exc_traceback = sys.exc_info()
+#: ../nova/exception.py:120
+msgid "Uncaught exception"
+msgstr "Exception non prévue"
+
+#: ../nova/volume/api.py:45
+#, python-format
+msgid "Quota exceeeded for %(pid)s, tried to create %(size)sG volume"
+msgstr ""
+"Quota dépassé pour %(pid)s lors d'une tentative de création d'un volume de "
+"%(size)sG"
+
+#: ../nova/volume/api.py:47
+#, python-format
+msgid "Volume quota exceeded. You cannot create a volume of size %sG"
+msgstr "Quota de volume dépassé. Vous ne pouvez pas créer un volume de %sG"
+
+#: ../nova/volume/api.py:71 ../nova/volume/api.py:96
+msgid "Volume status must be available"
+msgstr "Le status du volume doit être disponible"
+
+#: ../nova/volume/api.py:98
+msgid "Volume is already attached"
+msgstr "Volume déjà attaché"
+
+#: ../nova/volume/api.py:104
+msgid "Volume is already detached"
+msgstr "Volume déjà déttaché"
+
+#: ../nova/api/openstack/servers.py:72
+msgid "Failed to read private ip"
+msgstr "Echec lors de la lecture de l'ip privée"
+
+#: ../nova/api/openstack/servers.py:79
+msgid "Failed to read public ip(s)"
+msgstr "Echec lors de la lecture de l'ip(s) privée(s)"
+
+#: ../nova/api/openstack/servers.py:152
+#, python-format
+msgid "%(param)s property not found for image %(_image_id)s"
+msgstr ""
+"La propriété %(param)s n'a pas été trouvée pour l'image %(_image_id)s"
+
+#: ../nova/api/openstack/servers.py:168
+msgid "No keypairs defined"
+msgstr "Pas de paire de clés définie"
+
+#: ../nova/api/openstack/servers.py:238
+#, python-format
+msgid "Compute.api::lock %s"
+msgstr "Compute.api::lock %s"
+
+#: ../nova/api/openstack/servers.py:253
+#, python-format
+msgid "Compute.api::unlock %s"
+msgstr "Compute.api::unlock %s"
+
+#: ../nova/api/openstack/servers.py:267
+#, python-format
+msgid "Compute.api::get_lock %s"
+msgstr "Compute.api::get_lock %s"
+
+#: ../nova/api/openstack/servers.py:281
+#, python-format
+msgid "Compute.api::reset_network %s"
+msgstr "Compute.api::reset_network %s"
+
+#: ../nova/api/openstack/servers.py:292
+#, python-format
+msgid "Compute.api::pause %s"
+msgstr "Compute.api::pause %s"
+
+#: ../nova/api/openstack/servers.py:303
+#, python-format
+msgid "Compute.api::unpause %s"
+msgstr "Compute.api::unpause %s"
+
+#: ../nova/api/openstack/servers.py:314
+#, python-format
+msgid "compute.api::suspend %s"
+msgstr "compute.api::suspend %s"
+
+#: ../nova/api/openstack/servers.py:325
+#, python-format
+msgid "compute.api::resume %s"
+msgstr "compute.api::resume %s"
+
+#: ../nova/twistd.py:157
+msgid "Wrong number of arguments."
+msgstr "Nombre d'arguments incorrect."
+
+#: ../nova/twistd.py:209
+#, 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"
+
+#: ../nova/twistd.py:221
+msgid "No such process"
+msgstr "Aucun processus de ce type"
+
+#: ../nova/twistd.py:230 ../nova/service.py:224
+#, python-format
+msgid "Serving %s"
+msgstr "En train de servir %s"
+
+#: ../nova/twistd.py:262 ../nova/service.py:225
+msgid "Full set of FLAGS:"
+msgstr "Ensemble de propriétés complet :"
+
+#: ../nova/twistd.py:266
+#, python-format
+msgid "Starting %s"
+msgstr "Démarrage de %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 "Instance %s non trouvée"
+
+#. 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 "Attach_volume: %(instance_name)s, %(device_path)s, %(mountpoint)s"
+
+#: ../nova/virt/xenapi/volumeops.py:69
+#, python-format
+msgid "Unable to create VDI on SR %(sr_ref)s for instance %(instance_name)s"
+msgstr ""
+"Impossible de créer VDI sur SR %(sr_ref)s pour l'instance %(instance_name)s"
+
+#: ../nova/virt/xenapi/volumeops.py:80
+#, python-format
+msgid "Unable to use SR %(sr_ref)s for instance %(instance_name)s"
+msgstr ""
+"Impossible d'utiliser SR %(sr_ref)s pour l'instance %(instance_name)s"
+
+#: ../nova/virt/xenapi/volumeops.py:91
+#, python-format
+msgid "Unable to attach volume to instance %s"
+msgstr "Impossible d'attacher le volume à l'instance %s"
+
+#: ../nova/virt/xenapi/volumeops.py:93
+#, python-format
+msgid "Mountpoint %(mountpoint)s attached to instance %(instance_name)s"
+msgstr ""
+"Le point de montage %(mountpoint)s a été attaché à l'instance "
+"%(instance_name)s"
+
+#. Detach VBD from VM
+#: ../nova/virt/xenapi/volumeops.py:104
+#, python-format
+msgid "Detach_volume: %(instance_name)s, %(mountpoint)s"
+msgstr "Detach_volume: %(instance_name)s, %(mountpoint)s"
+
+#: ../nova/virt/xenapi/volumeops.py:112
+#, python-format
+msgid "Unable to locate volume %s"
+msgstr "Impossible de trouver le volume %s"
+
+#: ../nova/virt/xenapi/volumeops.py:120
+#, python-format
+msgid "Unable to detach volume %s"
+msgstr "Impossible de détacher le volume %s"
+
+#: ../nova/virt/xenapi/volumeops.py:127
+#, python-format
+msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
+msgstr ""
+"Le point de montage %(mountpoint)s à été détaché de l'instance "
+"%(instance_name)s"
+
+#: ../nova/compute/instance_types.py:41
+#, python-format
+msgid "Unknown instance type: %s"
+msgstr "Type d'instance inconnu: %s"
+
+#: ../nova/crypto.py:46
+msgid "Filename of root CA"
+msgstr "Nom du fichier contenant la racine de l'autorité de certification"
+
+#: ../nova/crypto.py:49
+msgid "Filename of private key"
+msgstr "Nom de fichier de la clé privée"
+
+#: ../nova/crypto.py:51
+msgid "Filename of root Certificate Revokation List"
+msgstr "Nom de fichier de la racine de liste de révocation (CRL)"
+
+#: ../nova/crypto.py:53
+msgid "Where we keep our keys"
+msgstr "Emplacement de sauvegarde des clefs"
+
+#: ../nova/crypto.py:55
+msgid "Where we keep our root CA"
+msgstr "Emplacement de sauvegarde des racines d'autorité de certification"
+
+#: ../nova/crypto.py:57
+msgid "Should we use a CA for each project?"
+msgstr "Doit-on utiliser une autorité de certification pour chaque projet ?"
+
+#: ../nova/crypto.py:61
+#, python-format
+msgid "Subject for certificate for users, %s for project, user, timestamp"
+msgstr ""
+"Sujet pour les certificats utilisateurs, %s pour le projet, utilisateur, "
+"timestamp"
+
+#: ../nova/crypto.py:66
+#, python-format
+msgid "Subject for certificate for projects, %s for project, timestamp"
+msgstr "Sujet de certificat pour projets, %s pour le projet, timestamp"
+
+#: ../nova/crypto.py:71
+#, python-format
+msgid "Subject for certificate for vpns, %s for project, timestamp"
+msgstr "Suject de certificat pour les vpns, %s pour le projet, timestamp"
+
+#: ../nova/crypto.py:258
+#, python-format
+msgid "Flags path: %s"
+msgstr "Chemin des propriétés: %s"
+
+#: ../nova/scheduler/manager.py:69
+#, python-format
+msgid "Casting to %(topic)s %(host)s for %(method)s"
+msgstr "Typage de %(topic)s %(host)s pour %(method)s"
+
+#: ../nova/compute/manager.py:78
+#, python-format
+msgid "check_instance_lock: decorating: |%s|"
+msgstr "check_instance_lock: décoration : |%s|"
+
+#: ../nova/compute/manager.py:80
+#, python-format
+msgid ""
+"check_instance_lock: arguments: |%(self)s| |%(context)s| |%(instance_id)s|"
+msgstr ""
+"check_instance_lock: arguments : |%(self)s| |%(context)s| |%(instance_id)s|"
+
+#: ../nova/compute/manager.py:84
+#, python-format
+msgid "check_instance_lock: locked: |%s|"
+msgstr "check_instance_lock: vérouillé : |%s|"
+
+#: ../nova/compute/manager.py:86
+#, python-format
+msgid "check_instance_lock: admin: |%s|"
+msgstr "check_instance_lock: admin : |%s|"
+
+#: ../nova/compute/manager.py:91
+#, python-format
+msgid "check_instance_lock: executing: |%s|"
+msgstr "check_instance_lock: exécution : |%s|"
+
+#: ../nova/compute/manager.py:95
+#, python-format
+msgid "check_instance_lock: not executing |%s|"
+msgstr "check_instance_lock: ne s'éxécute pas |%s|"
+
+#: ../nova/compute/manager.py:179
+msgid "Instance has already been created"
+msgstr "L'instance a déjà été crée"
+
+#: ../nova/compute/manager.py:180
+#, python-format
+msgid "instance %s: starting..."
+msgstr "L'instance %s: est en train d'être démarée..."
+
+#. pylint: disable=W0702
+#: ../nova/compute/manager.py:219
+#, python-format
+msgid "instance %s: Failed to spawn"
+msgstr "instance %s: n'a pas pu être crée"
+
+#: ../nova/compute/manager.py:233 ../nova/tests/test_cloud.py:286
+#, python-format
+msgid "Terminating instance %s"
+msgstr "Arrêt de l'instance %s"
+
+#: ../nova/compute/manager.py:255
+#, python-format
+msgid "Deallocating address %s"
+msgstr "Dé-allocation de l'adresss %s"
+
+#: ../nova/compute/manager.py:268
+#, python-format
+msgid "trying to destroy already destroyed instance: %s"
+msgstr "Tentative de destruction d'une instance déjà détruite: %s"
+
+#: ../nova/compute/manager.py:282
+#, python-format
+msgid "Rebooting instance %s"
+msgstr "Redémarrage de l'instance %s"
+
+#: ../nova/compute/manager.py:287
+#, python-format
+msgid ""
+"trying to reboot a non-running instance: %(instance_id)s (state: %(state)s "
+"expected: %(running)s)"
+msgstr ""
+"Tentative de redémarrage d'une instance non démarrée: %(instance_id)s "
+"(state: %(state)s s'attendait à : %(running)s)"
+
+#: ../nova/compute/manager.py:311
+#, python-format
+msgid "instance %s: snapshotting"
+msgstr "instance %s: création d'un instantané (snapshot)"
+
+#: ../nova/compute/manager.py:316
+#, python-format
+msgid ""
+"trying to snapshot a non-running instance: %(instance_id)s (state: %(state)s "
+"expected: %(running)s)"
+msgstr ""
+"Tentative de création d'un instantané (snapshot) pour une instance non "
+"démarrée: %(instance_id)s (state: %(state)s sattendait à : %(running)s)"
+
+#: ../nova/compute/manager.py:332
+#, python-format
+msgid ""
+"trying to reset the password on a non-running instance: %(instance_id)s "
+"(state: %(instance_state)s expected: %(expected_state)s)"
+msgstr ""
+"Tentative de ré-initialisation du mot de passe pour une instance non "
+"démarrée: %(instance_id)s (state: %(instance_state)s expected: "
+"%(expected_state)s)"
+
+#: ../nova/compute/manager.py:335
+#, python-format
+msgid "instance %s: setting admin password"
+msgstr "instance %s: configuration du mot de passe admin"
+
+#: ../nova/compute/manager.py:353
+#, python-format
+msgid ""
+"trying to inject a file into a non-running instance: %(instance_id)s (state: "
+"%(instance_state)s expected: %(expected_state)s)"
+msgstr ""
+"Tentative d'injection d'un fichier pour une instance non "
+"démarrée:%(instance_id)s (state: %(instance_state)s s'attendait à : "
+"%(expected_state)s)"
+
+#: ../nova/compute/manager.py:362
+#, python-format
+msgid "instance %(nm)s: injecting file to %(plain_path)s"
+msgstr "instance %(nm)s: injection de fichier vers %(plain_path)s"
+
+#: ../nova/compute/manager.py:372
+#, python-format
+msgid "instance %s: rescuing"
+msgstr "instance %s: récupération"
+
+#: ../nova/compute/manager.py:387
+#, python-format
+msgid "instance %s: unrescuing"
+msgstr "instance %s: dé-récupération"
+
+#: ../nova/compute/manager.py:406
+#, python-format
+msgid "instance %s: pausing"
+msgstr "instance %s: mise en pause"
+
+#: ../nova/compute/manager.py:423
+#, python-format
+msgid "instance %s: unpausing"
+msgstr "instance %s: reprise après pause"
+
+#: ../nova/compute/manager.py:440
+#, python-format
+msgid "instance %s: retrieving diagnostics"
+msgstr "instance %s: récupération des diagnostiques"
+
+#: ../nova/compute/manager.py:453
+#, python-format
+msgid "instance %s: suspending"
+msgstr "instance %s: suspension"
+
+#: ../nova/compute/manager.py:472
+#, python-format
+msgid "instance %s: resuming"
+msgstr "instance %s: reprise après suspension"
+
+#: ../nova/compute/manager.py:491
+#, python-format
+msgid "instance %s: locking"
+msgstr "instance %s: vérrouillage"
+
+#: ../nova/compute/manager.py:503
+#, python-format
+msgid "instance %s: unlocking"
+msgstr "instance %s: déverrouillage"
+
+#: ../nova/compute/manager.py:513
+#, python-format
+msgid "instance %s: getting locked state"
+msgstr "instance %s: récupération de l'état de vérouillage"
+
+#: ../nova/compute/manager.py:526
+#, python-format
+msgid "instance %s: reset network"
+msgstr "instance %s: redémarrage du réseau"
+
+#: ../nova/compute/manager.py:535 ../nova/api/ec2/cloud.py:515
+#, python-format
+msgid "Get console output for instance %s"
+msgstr "Récupération de la sortie de la console de l'instance %s"
+
+#: ../nova/compute/manager.py:543
+#, python-format
+msgid "instance %s: getting ajax console"
+msgstr "instance %s: préparation d'une console ajax"
+
+#: ../nova/compute/manager.py:553
+#, python-format
+msgid ""
+"instance %(instance_id)s: attaching volume %(volume_id)s to %(mountpoint)s"
+msgstr ""
+"instance %(instance_id)s: montage du volume %(volume_id)s à %(mountpoint)s"
+
+#. pylint: disable=W0702
+#. NOTE(vish): The inline callback eats the exception info so we
+#. log the traceback here and reraise the same
+#. ecxception below.
+#: ../nova/compute/manager.py:569
+#, python-format
+msgid "instance %(instance_id)s: attach failed %(mountpoint)s, removing"
+msgstr ""
+"instance %(instance_id)s: Échec de montage %(mountpoint)s, supression"
+
+#: ../nova/compute/manager.py:585
+#, python-format
+msgid ""
+"Detach volume %(volume_id)s from mountpoint %(mp)s on instance "
+"%(instance_id)s"
+msgstr ""
+"Démontage du volume %(volume_id)s du point de montage %(mp)s sur l'instance "
+"%(instance_id)s"
+
+#: ../nova/compute/manager.py:588
+#, python-format
+msgid "Detaching volume from unknown instance %s"
+msgstr "Démontage de volume d'une instance inconnue %s"
+
+#: ../nova/scheduler/simple.py:53
+#, python-format
+msgid "Host %s is not alive"
+msgstr "Host %s n'est pas en fonction"
+
+#: ../nova/scheduler/simple.py:65
+msgid "All hosts have too many cores"
+msgstr "Tous les hôtes ont trop de coeurs"
+
+#: ../nova/scheduler/simple.py:87
+#, python-format
+msgid "Host %s not available"
+msgstr "Hôte %s non disponible"
+
+#: ../nova/scheduler/simple.py:99
+msgid "All hosts have too many gigabytes"
+msgstr "Tous les hôtes ont trop de mémoire"
+
+#: ../nova/scheduler/simple.py:119
+msgid "All hosts have too many networks"
+msgstr "Tous les hôtes ont trop de réseaux"
+
+#: ../nova/volume/manager.py:85
+#, python-format
+msgid "Re-exporting %s volumes"
+msgstr "Ré-exportation de %s volumes"
+
+#: ../nova/volume/manager.py:90
+#, python-format
+msgid "volume %s: skipping export"
+msgstr "volume %s : exportation évitée"
+
+#: ../nova/volume/manager.py:96
+#, python-format
+msgid "volume %s: creating"
+msgstr "volume %s: création"
+
+#: ../nova/volume/manager.py:108
+#, python-format
+msgid "volume %(vol_name)s: creating lv of size %(vol_size)sG"
+msgstr "volume %(vol_name)s: cŕeation d'un volume logique de %(vol_size)sG"
+
+#: ../nova/volume/manager.py:112
+#, python-format
+msgid "volume %s: creating export"
+msgstr "volume %s: exportation en cours"
+
+#: ../nova/volume/manager.py:123
+#, python-format
+msgid "volume %s: created successfully"
+msgstr "volume %s: crée avec succès"
+
+#: ../nova/volume/manager.py:131
+msgid "Volume is still attached"
+msgstr "Le volume est encore attaché"
+
+#: ../nova/volume/manager.py:133
+msgid "Volume is not local to this node"
+msgstr "Le volume n'est pas local à ce noeud"
+
+#: ../nova/volume/manager.py:136
+#, python-format
+msgid "volume %s: removing export"
+msgstr "volume %s: suppression de l'exportation"
+
+#: ../nova/volume/manager.py:138
+#, python-format
+msgid "volume %s: deleting"
+msgstr "volume %s: suppression"
+
+#: ../nova/volume/manager.py:147
+#, python-format
+msgid "volume %s: deleted successfully"
+msgstr "volume %s: supprimé avec succès"
+
+#: ../nova/virt/xenapi/fake.py:74
+#, python-format
+msgid "%(text)s: _db_content => %(content)s"
+msgstr "%(text)s: _db_content => %(content)s"
+
+#: ../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 "Fonction non implémentée"
+
+#: ../nova/virt/xenapi/fake.py:306
+#, python-format
+msgid "xenapi.fake does not have an implementation for %s"
+msgstr "xenapi.fake n'a pas d'implémentation pour %s"
+
+#: ../nova/virt/xenapi/fake.py:341
+#, python-format
+msgid "Calling %(localname)s %(impl)s"
+msgstr "Appel %(localname)s %(impl)s"
+
+#: ../nova/virt/xenapi/fake.py:346
+#, python-format
+msgid "Calling getter %s"
+msgstr "Appel du getter %s"
+
+#: ../nova/virt/xenapi/fake.py:406
+#, python-format
+msgid ""
+"xenapi.fake does not have an implementation for %s or it has been called "
+"with the wrong number of arguments"
+msgstr ""
+"xenapi.fake n'a pas d'implementation pour %s ou il a été appelé avec le "
+"mauvais nombre d'arguments"
+
+#: ../nova/tests/test_cloud.py:256
+msgid "Can't test instances without a real virtual env."
+msgstr "Ne peut pas tester les instances sans un env virtuel."
+
+#: ../nova/tests/test_cloud.py:268
+#, python-format
+msgid "Need to watch instance %s until it's running..."
+msgstr "Besoin de surveiller l'instance %s jusqu'à son démarrage..."
+
+#: ../nova/virt/connection.py:73
+msgid "Failed to open connection to the hypervisor"
+msgstr "Échec lors de l'ouverture d'une connexion à l'hyperviseur"
+
+#: ../nova/network/linux_net.py:187
+#, python-format
+msgid "Starting VLAN inteface %s"
+msgstr "Démarrage de l'interface VLAN %s"
+
+#: ../nova/network/linux_net.py:208
+#, python-format
+msgid "Starting Bridge interface for %s"
+msgstr "Démarrage de l'interface de Bridge %s"
+
+#. pylint: disable=W0703
+#: ../nova/network/linux_net.py:314
+#, python-format
+msgid "Hupping dnsmasq threw %s"
+msgstr "Hupping dnsmasq à renvoyé %s"
+
+#: ../nova/network/linux_net.py:316
+#, python-format
+msgid "Pid %d is stale, relaunching dnsmasq"
+msgstr "Pid %d est dépassé, re-démarrage de dnsmasq"
+
+#. pylint: disable=W0703
+#: ../nova/network/linux_net.py:358
+#, python-format
+msgid "killing radvd threw %s"
+msgstr "La destruction de radvd à renvoyé %s"
+
+#: ../nova/network/linux_net.py:360
+#, python-format
+msgid "Pid %d is stale, relaunching radvd"
+msgstr "Pid %d est dépassé, re-démarrage radvd"
+
+#. pylint: disable=W0703
+#: ../nova/network/linux_net.py:449
+#, python-format
+msgid "Killing dnsmasq threw %s"
+msgstr "La destruction de dnsmasq à renvoyé %s"
+
+#: ../nova/utils.py:58
+#, python-format
+msgid "Inner Exception: %s"
+msgstr "Exception interne : %s"
+
+#: ../nova/utils.py:59
+#, python-format
+msgid "Class %s cannot be found"
+msgstr "La classe %s n'a pas pu être trouvée"
+
+#: ../nova/utils.py:118
+#, python-format
+msgid "Fetching %s"
+msgstr "Récupèration de %s"
+
+#: ../nova/utils.py:130
+#, python-format
+msgid "Running cmd (subprocess): %s"
+msgstr "Execution de la commande (sous-processus) : %s"
+
+#: ../nova/utils.py:143 ../nova/utils.py:183
+#, python-format
+msgid "Result was %s"
+msgstr "Le résultat était %s"
+
+#: ../nova/utils.py:159
+#, python-format
+msgid "Running cmd (SSH): %s"
+msgstr "Execution de la cmd (SSH): %s"
+
+#: ../nova/utils.py:217
+#, python-format
+msgid "debug in callback: %s"
+msgstr "Debug dans le rappel : %s"
+
+#: ../nova/utils.py:222
+#, python-format
+msgid "Running %s"
+msgstr "Exécution de %s"
+
+#: ../nova/utils.py:262
+#, python-format
+msgid "Link Local address is not found.:%s"
+msgstr "L'adresse du lien local n'a pas été trouvé :%s"
+
+#: ../nova/utils.py:265
+#, python-format
+msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
+msgstr "Impossible de trouver l'IP du lien local de %(interface)s :%(ex)s"
+
+#: ../nova/utils.py:363
+#, python-format
+msgid "Invalid backend: %s"
+msgstr "Backend invalide : %s"
+
+#: ../nova/utils.py:374
+#, python-format
+msgid "backend %s"
+msgstr "backend %s"
+
+#: ../nova/fakerabbit.py:49
+#, python-format
+msgid "(%(nm)s) publish (key: %(routing_key)s) %(message)s"
+msgstr "(%(nm)s) publication (key: %(routing_key)s) %(message)s"
+
+#: ../nova/fakerabbit.py:54
+#, python-format
+msgid "Publishing to route %s"
+msgstr "Publication vers la route %s"
+
+#: ../nova/fakerabbit.py:84
+#, python-format
+msgid "Declaring queue %s"
+msgstr "Déclaration de la queue %s"
+
+#: ../nova/fakerabbit.py:90
+#, python-format
+msgid "Declaring exchange %s"
+msgstr "Déclaration de l'échange %s"
+
+#: ../nova/fakerabbit.py:96
+#, python-format
+msgid "Binding %(queue)s to %(exchange)s with key %(routing_key)s"
+msgstr ""
+"Rattachement de %(queue)s vers %(exchange)s avec la clef %(routing_key)s"
+
+#: ../nova/fakerabbit.py:121
+#, python-format
+msgid "Getting from %(queue)s: %(message)s"
+msgstr "Récupération depuis %(queue)s: %(message)s"
+
+#: ../nova/virt/xenapi/vm_utils.py:135 ../nova/virt/hyperv.py:171
+#, python-format
+msgid "Created VM %s..."
+msgstr "VM %s crée..."
+
+#: ../nova/virt/xenapi/vm_utils.py:138
+#, python-format
+msgid "Created VM %(instance_name)s as %(vm_ref)s."
+msgstr "VM %(instance_name)s crée en tant que %(vm_ref)s."
+
+#: ../nova/virt/xenapi/vm_utils.py:168
+#, python-format
+msgid "Creating VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
+msgstr "Création de VBD pour VM %(vm_ref)s, VDI %(vdi_ref)s ... "
+
+#: ../nova/virt/xenapi/vm_utils.py:171
+#, python-format
+msgid "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
+msgstr "VBD créé %(vbd_ref)s pour VM %(vm_ref)s, VDI %(vdi_ref)s."
+
+#: ../nova/virt/xenapi/vm_utils.py:187
+#, python-format
+msgid "VBD not found in instance %s"
+msgstr "VBD non trouvé dans l'instance %s"
+
+#: ../nova/virt/xenapi/vm_utils.py:197
+#, python-format
+msgid "Unable to unplug VBD %s"
+msgstr "Impossible de deconnecter le VBD %s"
+
+#: ../nova/virt/xenapi/vm_utils.py:209
+#, python-format
+msgid "Unable to destroy VBD %s"
+msgstr "Impossible de supprimer le VBD %s"
+
+#: ../nova/virt/xenapi/vm_utils.py:224
+#, python-format
+msgid "Creating VIF for VM %(vm_ref)s, network %(network_ref)s."
+msgstr "Création du VIF pour la VM %(vm_ref)s, réseau %(network_ref)s."
+
+#: ../nova/virt/xenapi/vm_utils.py:227
+#, python-format
+msgid "Created VIF %(vif_ref)s for VM %(vm_ref)s, network %(network_ref)s."
+msgstr "VIF créé %(vif_ref)s pour la VM %(vm_ref)s, network %(network_ref)s."
+
+#: ../nova/virt/xenapi/vm_utils.py:246
+#, python-format
+msgid ""
+"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s) on "
+"%(sr_ref)s."
+msgstr ""
+"VDI créé %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s) on "
+"%(sr_ref)s."
+
+#. TODO(sirp): Add quiesce and VSS locking support when Windows support
+#. is added
+#: ../nova/virt/xenapi/vm_utils.py:258
+#, python-format
+msgid "Snapshotting VM %(vm_ref)s with label '%(label)s'..."
+msgstr ""
+"Création de l'instantané (snapshot) pour la VM %(vm_ref)s avec le label "
+"'%(label)s'..."
+
+#: ../nova/virt/xenapi/vm_utils.py:272
+#, python-format
+msgid "Created snapshot %(template_vm_ref)s from VM %(vm_ref)s."
+msgstr ""
+"Instantané (snapshot) créé %(template_vm_ref)s pour la VM %(vm_ref)s."
+
+#: ../nova/virt/xenapi/vm_utils.py:286
+#, python-format
+msgid "Asking xapi to upload %(vdi_uuids)s as ID %(image_id)s"
+msgstr ""
+"Demande de chargement à xapi de %(vdi_uuids)s en tant qu'ID %(image_id)s"
+
+#: ../nova/virt/xenapi/vm_utils.py:327
+#, python-format
+msgid "Size for image %(image)s:%(virtual_size)d"
+msgstr "Taille de l'image %(image)s:%(virtual_size)d"
+
+#: ../nova/virt/xenapi/vm_utils.py:332
+#, python-format
+msgid "Glance image %s"
+msgstr "Image Glance %s"
+
+#. we need to invoke a plugin for copying VDI's
+#. content into proper path
+#: ../nova/virt/xenapi/vm_utils.py:342
+#, python-format
+msgid "Copying VDI %s to /boot/guest on dom0"
+msgstr "Copie de VDI %s vers /boot/guest sur dom0"
+
+#: ../nova/virt/xenapi/vm_utils.py:352
+#, python-format
+msgid "Kernel/Ramdisk VDI %s destroyed"
+msgstr "Noyau/Ramdisk VDI %s détruit"
+
+#: ../nova/virt/xenapi/vm_utils.py:361
+#, python-format
+msgid "Asking xapi to fetch %(url)s as %(access)s"
+msgstr "Demande de récupération à xapi de %(url)s as %(access)s"
+
+#: ../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 "Recherche du VDI %s pour le PV kernel"
+
+#: ../nova/virt/xenapi/vm_utils.py:397
+#, python-format
+msgid "PV Kernel in VDI:%s"
+msgstr "PV Kernel sur VDI :%s"
+
+#: ../nova/virt/xenapi/vm_utils.py:405
+#, python-format
+msgid "Running pygrub against %s"
+msgstr "Exécution de pygrub sur %s"
+
+#: ../nova/virt/xenapi/vm_utils.py:411
+#, python-format
+msgid "Found Xen kernel %s"
+msgstr "Kernel Xen %s trouvé"
+
+#: ../nova/virt/xenapi/vm_utils.py:413
+msgid "No Xen kernel found. Booting HVM."
+msgstr "Pas de kernel Xen trouvé. Démarrage en HVM."
+
+#: ../nova/virt/xenapi/vm_utils.py:425 ../nova/virt/hyperv.py:431
+#, python-format
+msgid "duplicate name found: %s"
+msgstr "Doublon de nom trouvé : %s"
+
+#: ../nova/virt/xenapi/vm_utils.py:442
+#, python-format
+msgid "VDI %s is still available"
+msgstr "Le VDI %s est toujours disponible"
+
+#: ../nova/virt/xenapi/vm_utils.py:463
+#, python-format
+msgid "(VM_UTILS) xenserver vm state -> |%s|"
+msgstr "(VM_UTILS) état xenserver vm -> |%s|"
+
+#: ../nova/virt/xenapi/vm_utils.py:465
+#, python-format
+msgid "(VM_UTILS) xenapi power_state -> |%s|"
+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 "VHD %(vdi_uuid)s à pour parent %(parent_ref)s"
+
+#: ../nova/virt/xenapi/vm_utils.py:542
+#, python-format
+msgid "Re-scanning SR %s"
+msgstr "Re-parcours de SR %s"
+
+#: ../nova/virt/xenapi/vm_utils.py:567
+#, python-format
+msgid ""
+"VHD coalesce attempts exceeded (%(counter)d > %(max_attempts)d), giving up..."
+msgstr ""
+"VHD tentatives de coalesence dépassé (%(counter)d > %(max_attempts)d), "
+"abandon..."
+
+#: ../nova/virt/xenapi/vm_utils.py:574
+#, python-format
+msgid ""
+"Parent %(parent_uuid)s doesn't match original parent "
+"%(original_parent_uuid)s, waiting for coalesce..."
+msgstr ""
+"L'UUID parent %(parent_uuid)s ne correspond pas au parent originel "
+"%(original_parent_uuid)s, attente de coalesence..."
+
+#: ../nova/virt/xenapi/vm_utils.py:590
+#, python-format
+msgid "No VDIs found for VM %s"
+msgstr "Pas de VDIs trouvé pour la VM %s"
+
+#: ../nova/virt/xenapi/vm_utils.py:594
+#, python-format
+msgid "Unexpected number of VDIs (%(num_vdis)s) found for VM %(vm_ref)s"
+msgstr ""
+"Nombre de VDIs non attendu (%(num_vdis)s) trouvés pour la VM %(vm_ref)s"
+
+#: ../nova/virt/xenapi/vm_utils.py:653
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:188
+#, python-format
+msgid "Creating VBD for VDI %s ... "
+msgstr "Création de VBD pour la VDI %s ... "
+
+#: ../nova/virt/xenapi/vm_utils.py:655
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:190
+#, python-format
+msgid "Creating VBD for VDI %s done."
+msgstr "La création de VBD pour la VDI %s est terminée."
+
+#: ../nova/virt/xenapi/vm_utils.py:657
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:192
+#, python-format
+msgid "Plugging VBD %s ... "
+msgstr "Connexion de VBD %s ... "
+
+#: ../nova/virt/xenapi/vm_utils.py:659
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:194
+#, python-format
+msgid "Plugging VBD %s done."
+msgstr "Connexion de VBD %s terminée."
+
+#: ../nova/virt/xenapi/vm_utils.py:661
+#, python-format
+msgid "VBD %(vbd)s plugged as %(orig_dev)s"
+msgstr "VBD %(vbd)s connecté en tant que %(orig_dev)s"
+
+#: ../nova/virt/xenapi/vm_utils.py:664
+#, python-format
+msgid "VBD %(vbd)s plugged into wrong dev, remapping to %(dev)s"
+msgstr "VBD %(vbd)s connecté au mauvais device, re-connexion vers %(dev)s"
+
+#: ../nova/virt/xenapi/vm_utils.py:668
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:197
+#, python-format
+msgid "Destroying VBD for VDI %s ... "
+msgstr "Destruction de VBD pour la VDI %s ... "
+
+#: ../nova/virt/xenapi/vm_utils.py:671
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:200
+#, python-format
+msgid "Destroying VBD for VDI %s done."
+msgstr "Destruction de VBD pour la VDI %s terminée."
+
+#: ../nova/virt/xenapi/vm_utils.py:683
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:211
+msgid "VBD.unplug successful first time."
+msgstr "VBD.unplug terminé dés la première tentative."
+
+#: ../nova/virt/xenapi/vm_utils.py:688
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:216
+msgid "VBD.unplug rejected: retrying..."
+msgstr "VBD.unplug refusé : nouvel essai..."
+
+#: ../nova/virt/xenapi/vm_utils.py:692
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:220
+msgid "VBD.unplug successful eventually."
+msgstr "VBD.unplug à enfin été achevée."
+
+#: ../nova/virt/xenapi/vm_utils.py:695
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:223
+#, python-format
+msgid "Ignoring XenAPI.Failure in VBD.unplug: %s"
+msgstr "XenAPI.Failure ignorée dans VBD.unplug: %s"
+
+#: ../nova/virt/xenapi/vm_utils.py:704
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:66
+#, python-format
+msgid "Ignoring XenAPI.Failure %s"
+msgstr "XenAPI.Failure %s ignorée"
+
+#: ../nova/virt/xenapi/vm_utils.py:735
+#, python-format
+msgid ""
+"Writing partition table %(primary_first)d %(primary_last)d to %(dest)s..."
+msgstr ""
+"Ecriture de la table de partitionnement %(primary_first)d %(primary_last)d "
+"vers %(dest)s..."
+
+#: ../nova/virt/xenapi/vm_utils.py:747
+#, python-format
+msgid "Writing partition table %s done."
+msgstr "Ecriture de la table de partitionnement %s terminée."
+
+#: ../nova/tests/test_rpc.py:89
+#, python-format
+msgid "Nested received %(queue)s, %(value)s"
+msgstr "Reception par Nested %(queue)s, %(value)s"
+
+#: ../nova/tests/test_rpc.py:95
+#, python-format
+msgid "Nested return %s"
+msgstr "Nested renvoi %s"
+
+#: ../nova/tests/test_rpc.py:120 ../nova/tests/test_rpc.py:126
+#, python-format
+msgid "Received %s"
+msgstr "%s Reçu"
+
+#: ../nova/db/sqlalchemy/api.py:44
+msgid "Use of empty request context is deprecated"
+msgstr "L'utilisation d'une requête de contexte vide est dévalué"
+
+#: ../nova/db/sqlalchemy/api.py:133
+#, python-format
+msgid "No service for id %s"
+msgstr "Pas de service pour l'id %s"
+
+#: ../nova/db/sqlalchemy/api.py:251
+#, python-format
+msgid "No service for %(host)s, %(binary)s"
+msgstr "Pas de service pour %(host)s, %(binary)s"
+
+#: ../nova/db/sqlalchemy/api.py:592
+msgid "No fixed ips defined"
+msgstr "Aucune IP fixe définie"
+
+#: ../nova/db/sqlalchemy/api.py:608
+#, python-format
+msgid "No floating ip for address %s"
+msgstr "Pas d'IP flottante pour l'addresse %s"
+
+#: ../nova/db/sqlalchemy/api.py:629
+#, python-format
+msgid "No address for instance %s"
+msgstr "Pas d'adresse pour l'instance %s"
+
+#: ../nova/db/sqlalchemy/api.py:961
+#, python-format
+msgid "no keypair for user %(user_id)s, name %(name)s"
+msgstr "Pas de bi-clef pour l'utilisation %(user_id)s, nommé %(name)s"
+
+#: ../nova/db/sqlalchemy/api.py:1076 ../nova/db/sqlalchemy/api.py:1156
+#, python-format
+msgid "No network for id %s"
+msgstr "Pas de réseau pourl'id %s"
+
+#: ../nova/db/sqlalchemy/api.py:1086
+msgid "No networks defined"
+msgstr "Pas de réseau défini"
+
+#: ../nova/db/sqlalchemy/api.py:1115
+#, python-format
+msgid "No network for bridge %s"
+msgstr "Pas de réseau pour le bridge %s"
+
+#: ../nova/db/sqlalchemy/api.py:1129 ../nova/db/sqlalchemy/api.py:1142
+#, python-format
+msgid "No network for instance %s"
+msgstr "Pas de réseau pour l'instance %s"
+
+#: ../nova/db/sqlalchemy/api.py:1277
+#, python-format
+msgid "Token %s does not exist"
+msgstr "Le jeton %s n'existe pas"
+
+#: ../nova/db/sqlalchemy/api.py:1302
+#, python-format
+msgid "No quota for project_id %s"
+msgstr "Pas de quota pour l'ID projet %s"
+
+#: ../nova/db/sqlalchemy/api.py:1455 ../nova/db/sqlalchemy/api.py:1501
+#: ../nova/api/ec2/__init__.py:323
+#, python-format
+msgid "Volume %s not found"
+msgstr "Volume %s non trouvé"
+
+#: ../nova/db/sqlalchemy/api.py:1514
+#, python-format
+msgid "No export device found for volume %s"
+msgstr "Pas de device d'exportation pour le volume %s"
+
+#: ../nova/db/sqlalchemy/api.py:1527
+#, python-format
+msgid "No target id found for volume %s"
+msgstr "Pas d'id de destination trouvée pour le volume %s"
+
+#: ../nova/db/sqlalchemy/api.py:1572
+#, python-format
+msgid "No security group with id %s"
+msgstr "Aucun groupe de sécurité avec l'id %s"
+
+#: ../nova/db/sqlalchemy/api.py:1589
+#, python-format
+msgid "No security group named %(group_name)s for project: %(project_id)s"
+msgstr ""
+"Aucun groupe de sécurité nommé %(group_name)s pour le projet : %(project_id)s"
+
+#: ../nova/db/sqlalchemy/api.py:1682
+#, python-format
+msgid "No secuity group rule with id %s"
+msgstr "Pas de groupe de sécurité ayant pour ID %s"
+
+#: ../nova/db/sqlalchemy/api.py:1756
+#, python-format
+msgid "No user for id %s"
+msgstr "Pas d'utilisateur ayant pour ID %s"
+
+#: ../nova/db/sqlalchemy/api.py:1772
+#, python-format
+msgid "No user for access key %s"
+msgstr "Pas d'utilisateur avec la clef d'accès %s"
+
+#: ../nova/db/sqlalchemy/api.py:1834
+#, python-format
+msgid "No project with id %s"
+msgstr "Pas de projet ayant pour ID %s"
+
+#: ../nova/db/sqlalchemy/api.py:1979
+#, python-format
+msgid "No console pool with id %(pool_id)s"
+msgstr "Pas de groupe de console ayant pour ID %(pool_id)s"
+
+#: ../nova/db/sqlalchemy/api.py:1996
+#, python-format
+msgid ""
+"No console pool of type %(console_type)s for compute host %(compute_host)s "
+"on proxy host %(host)s"
+msgstr ""
+"Pas de groupe de console de type %(console_type)s pour l'hote de calcul "
+"%(compute_host)s sur le proxy %(host)s"
+
+#: ../nova/db/sqlalchemy/api.py:2035
+#, python-format
+msgid "No console for instance %(instance_id)s in pool %(pool_id)s"
+msgstr ""
+"Pas de console pour l'intance %(instance_id)s dans le groupe %(pool_id)s"
+
+#: ../nova/db/sqlalchemy/api.py:2057
+#, python-format
+msgid "on instance %s"
+msgstr "sur l'intance %s"
+
+#: ../nova/db/sqlalchemy/api.py:2058
+#, python-format
+msgid "No console with id %(console_id)s %(idesc)s"
+msgstr "Pas de console ayant pour ID %(console_id)s %(idesc)s"
+
+#: ../nova/db/sqlalchemy/api.py:2078 ../nova/db/sqlalchemy/api.py:2097
+#, python-format
+msgid "No zone with id %(zone_id)s"
+msgstr "Pas de zone ayant pour ID %(zone_id)s"
+
+#: ../nova/virt/libvirt_conn.py:160
+#, python-format
+msgid "Checking state of %s"
+msgstr "Vérification de l'état de %s"
+
+#: ../nova/virt/libvirt_conn.py:165
+#, python-format
+msgid "Current state of %(name)s was %(state)s."
+msgstr "L'état de %(name)s est %(state)s."
+
+#: ../nova/virt/libvirt_conn.py:183
+#, python-format
+msgid "Connecting to libvirt: %s"
+msgstr "Connexion à libvirt: %s"
+
+#: ../nova/virt/libvirt_conn.py:196
+msgid "Connection to libvirt broke"
+msgstr "Connexion à libvirt interrompue"
+
+#: ../nova/virt/libvirt_conn.py:258
+#, python-format
+msgid "instance %(instance_name)s: deleting instance files %(target)s"
+msgstr ""
+"instance %(instance_name)s: suppression des fichiers d'instance %(target)s"
+
+#: ../nova/virt/libvirt_conn.py:283
+#, python-format
+msgid "Invalid device path %s"
+msgstr "Chemin de device invalide %s"
+
+#: ../nova/virt/libvirt_conn.py:313
+#, python-format
+msgid "No disk at %s"
+msgstr "Pas de disque sur %s"
+
+#: ../nova/virt/libvirt_conn.py:320
+msgid "Instance snapshotting is not supported for libvirtat this time"
+msgstr ""
+"Les instantanés (snapshot) d'instance ne sont pas disponible avec libvirt "
+"pour le moment"
+
+#: ../nova/virt/libvirt_conn.py:336
+#, python-format
+msgid "instance %s: rebooted"
+msgstr "instance %s: re-démarrée"
+
+#: ../nova/virt/libvirt_conn.py:339
+#, python-format
+msgid "_wait_for_reboot failed: %s"
+msgstr "_wait_for_reboot échouée : %s"
+
+#: ../nova/virt/libvirt_conn.py:382
+#, python-format
+msgid "instance %s: rescued"
+msgstr "instance %s: récupérée"
+
+#: ../nova/virt/libvirt_conn.py:385
+#, python-format
+msgid "_wait_for_rescue failed: %s"
+msgstr "_wait_for_rescue échouée : %s"
+
+#: ../nova/virt/libvirt_conn.py:411
+#, python-format
+msgid "instance %s: is running"
+msgstr "instance %s: est active"
+
+#: ../nova/virt/libvirt_conn.py:422
+#, python-format
+msgid "instance %s: booted"
+msgstr "instance %s: a démarrée"
+
+#: ../nova/virt/libvirt_conn.py:425 ../nova/virt/xenapi/vmops.py:186
+#, python-format
+msgid "instance %s: failed to boot"
+msgstr "instance %s: n'a pas réussie à démarrer"
+
+#: ../nova/virt/libvirt_conn.py:436
+#, python-format
+msgid "virsh said: %r"
+msgstr "virsh a retourné : %r"
+
+#: ../nova/virt/libvirt_conn.py:440
+msgid "cool, it's a device"
+msgstr "super, c'est un device"
+
+#: ../nova/virt/libvirt_conn.py:448
+#, python-format
+msgid "data: %(data)r, fpath: %(fpath)r"
+msgstr "data: %(data)r, fpath: %(fpath)r"
+
+#: ../nova/virt/libvirt_conn.py:456
+#, python-format
+msgid "Contents of file %(fpath)s: %(contents)r"
+msgstr "Contenu du fichier %(fpath)s: %(contents)r"
+
+#: ../nova/virt/libvirt_conn.py:489
+msgid "Unable to find an open port"
+msgstr "Impossible de trouver un port ouvert"
+
+#: ../nova/virt/libvirt_conn.py:563
+#, python-format
+msgid "instance %s: Creating image"
+msgstr "instance %s : Création de l'image"
+
+#: ../nova/virt/libvirt_conn.py:646
+#, python-format
+msgid "instance %(inst_name)s: injecting key into image %(img_id)s"
+msgstr "instance %(inst_name)s : injection de clef dans l'image %(img_id)s"
+
+#: ../nova/virt/libvirt_conn.py:649
+#, python-format
+msgid "instance %(inst_name)s: injecting net into image %(img_id)s"
+msgstr "instance %(inst_name)s : injection de réseau dans l'image %(img_id)s"
+
+#. This could be a windows image, or a vmdk format disk
+#: ../nova/virt/libvirt_conn.py:657
+#, python-format
+msgid ""
+"instance %(inst_name)s: ignoring error injecting data into image %(img_id)s "
+"(%(e)s)"
+msgstr ""
+"instance %(inst_name)s : l'erreur d'injection de donné dans l'image "
+"%(img_id)s (%(e)s) a été ignorée"
+
+#. TODO(termie): cache?
+#: ../nova/virt/libvirt_conn.py:665
+#, python-format
+msgid "instance %s: starting toXML method"
+msgstr "instance %s: démarrage de la méthode toXML"
+
+#: ../nova/virt/libvirt_conn.py:732
+#, python-format
+msgid "instance %s: finished toXML method"
+msgstr "instance %s: fin d'éxécution de la méthode toXML"
+
+#: ../nova/virt/libvirt_conn.py:751
+msgid "diagnostics are not supported for libvirt"
+msgstr "Les diagnostiques ne sont pas disponibles pour libvirt"
+
+#: ../nova/virt/libvirt_conn.py:1225
+#, python-format
+msgid "Attempted to unfilter instance %s which is not filtered"
+msgstr ""
+"Tentative de suppression de filtre pour l'intance %s qui n'est pas filtrée"
+
+#: ../nova/api/ec2/metadatarequesthandler.py:76
+#, python-format
+msgid "Failed to get metadata for ip: %s"
+msgstr "Impossible de récupérer les méta-donnérs pour l'IP : %s"
+
+#: ../nova/auth/fakeldap.py:33
+msgid "Attempted to instantiate singleton"
+msgstr "Tentative d'instanciation d'un singleton"
+
+#: ../nova/network/api.py:39
+#, python-format
+msgid "Quota exceeeded for %s, tried to allocate address"
+msgstr "Quota dépassé pour %s lors de la tentative d'allocation d'adresse"
+
+#: ../nova/network/api.py:42
+msgid "Address quota exceeded. You cannot allocate any more addresses"
+msgstr "Quota d'adresse dépassé. Vous ne pouvez pas allouer d'autre adresse"
+
+#: ../nova/tests/test_volume.py:162
+#, python-format
+msgid "Target %s allocated"
+msgstr "Destination %s allouée"
+
+#: ../nova/virt/images.py:70
+#, python-format
+msgid "Finished retreving %(url)s -- placed in %(path)s"
+msgstr "Fin de récupération de %(url)s -- placé dans %(path)s"
+
+#: ../nova/scheduler/driver.py:66
+msgid "Must implement a fallback schedule"
+msgstr "Doit mettre en oeuvre un calendrier de retrait"
+
+#: ../nova/console/manager.py:70
+msgid "Adding console"
+msgstr "Ajout de console"
+
+#: ../nova/console/manager.py:90
+#, python-format
+msgid "Tried to remove non-existant console %(console_id)s."
+msgstr "Tentative de suppression d'une console non existante %(console_id)s."
+
+#: ../nova/api/direct.py:149
+msgid "not available"
+msgstr "non disponible"
+
+#: ../nova/api/ec2/cloud.py:62
+#, python-format
+msgid "The key_pair %s already exists"
+msgstr "Le bi-clef %s existe déjà"
+
+#. TODO(vish): Do this with M2Crypto instead
+#: ../nova/api/ec2/cloud.py:118
+#, python-format
+msgid "Generating root CA: %s"
+msgstr "Génération de la racine d'autorité de certification : %s"
+
+#: ../nova/api/ec2/cloud.py:303
+#, python-format
+msgid "Create key pair %s"
+msgstr "Création du bi-clef %s"
+
+#: ../nova/api/ec2/cloud.py:311
+#, python-format
+msgid "Delete key pair %s"
+msgstr "Suppression du bi-clef %s"
+
+#: ../nova/api/ec2/cloud.py:386
+#, python-format
+msgid "%s is not a valid ipProtocol"
+msgstr "%s n'est pas un protocol ip valide"
+
+#: ../nova/api/ec2/cloud.py:390
+msgid "Invalid port range"
+msgstr "Interval de port invalide"
+
+#: ../nova/api/ec2/cloud.py:421
+#, python-format
+msgid "Revoke security group ingress %s"
+msgstr "Révocation de groupe de sécurité %s"
+
+#: ../nova/api/ec2/cloud.py:430 ../nova/api/ec2/cloud.py:459
+msgid "Not enough parameters to build a valid rule."
+msgstr "Pas assez de parametres pour contruire un règle valide."
+
+#: ../nova/api/ec2/cloud.py:443
+msgid "No rule for the specified parameters."
+msgstr "Pas de règle pour les paramètres spécifiés."
+
+#: ../nova/api/ec2/cloud.py:450
+#, python-format
+msgid "Authorize security group ingress %s"
+msgstr "Authorisation du groupe de sécurité %s"
+
+#: ../nova/api/ec2/cloud.py:464
+#, python-format
+msgid "This rule already exists in group %s"
+msgstr "Cette règle existe déjà dans le groupe %s"
+
+#: ../nova/api/ec2/cloud.py:492
+#, python-format
+msgid "Create Security Group %s"
+msgstr "Création du groupe de sécurité %s"
+
+#: ../nova/api/ec2/cloud.py:495
+#, python-format
+msgid "group %s already exists"
+msgstr "le groupe %s existe déjà"
+
+#: ../nova/api/ec2/cloud.py:507
+#, python-format
+msgid "Delete security group %s"
+msgstr "Suppression du groupe de sécurité %s"
+
+#: ../nova/api/ec2/cloud.py:584
+#, python-format
+msgid "Create volume of %s GB"
+msgstr "Création d'un volume de %s Go"
+
+#: ../nova/api/ec2/cloud.py:612
+#, python-format
+msgid "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
+msgstr ""
+"Montage du volume %(volume_id)s sur l'instance %(instance_id)s en tant que "
+"%(device)s"
+
+#: ../nova/api/ec2/cloud.py:629
+#, python-format
+msgid "Detach volume %s"
+msgstr "Dé-montage du volume %s"
+
+#: ../nova/api/ec2/cloud.py:761
+msgid "Allocate address"
+msgstr "Allocation d'adresse"
+
+#: ../nova/api/ec2/cloud.py:766
+#, python-format
+msgid "Release address %s"
+msgstr "Désallocation de l'adresse %s"
+
+#: ../nova/api/ec2/cloud.py:771
+#, python-format
+msgid "Associate address %(public_ip)s to instance %(instance_id)s"
+msgstr ""
+"Association de l'adresse %(public_ip)s avec l'instance %(instance_id)s"
+
+#: ../nova/api/ec2/cloud.py:780
+#, python-format
+msgid "Disassociate address %s"
+msgstr "Désassociation de l'adresse %s"
+
+#: ../nova/api/ec2/cloud.py:807
+msgid "Going to start terminating instances"
+msgstr "Début de la destruction d'instance"
+
+#: ../nova/api/ec2/cloud.py:815
+#, python-format
+msgid "Reboot instance %r"
+msgstr "Re-démarrage de l'instance %r"
+
+#: ../nova/api/ec2/cloud.py:867
+#, python-format
+msgid "De-registering image %s"
+msgstr "Dé-enregitrement de l'image %s"
+
+#: ../nova/api/ec2/cloud.py:875
+#, python-format
+msgid "Registered image %(image_location)s with id %(image_id)s"
+msgstr "Image %(image_location)s enregistré avec l'id %(image_id)s"
+
+#: ../nova/api/ec2/cloud.py:882 ../nova/api/ec2/cloud.py:900
+#, python-format
+msgid "attribute not supported: %s"
+msgstr "attribut non reconnu : %s"
+
+#: ../nova/api/ec2/cloud.py:890
+#, python-format
+msgid "invalid id: %s"
+msgstr "ID invalide : %s"
+
+#: ../nova/api/ec2/cloud.py:903
+msgid "user or group not specified"
+msgstr "Utilisateur ou groupe non spécifié"
+
+#: ../nova/api/ec2/cloud.py:905
+msgid "only group \"all\" is supported"
+msgstr "Seul le group \"tous\" est supporté"
+
+#: ../nova/api/ec2/cloud.py:907
+msgid "operation_type must be add or remove"
+msgstr ""
+"le type d'opération (operation_type) doit être ajout (add) ou suppression "
+"(remove)"
+
+#: ../nova/api/ec2/cloud.py:908
+#, python-format
+msgid "Updating image %s publicity"
+msgstr "Mis à jour de la publication de l'image %s"
+
+#: ../bin/nova-api.py:52
+#, python-format
+msgid "Using paste.deploy config at: %s"
+msgstr "Utilisation de la configuration paste.deploy sur : %s"
+
+#: ../bin/nova-api.py:57
+#, python-format
+msgid "No paste configuration for app: %s"
+msgstr "Pas de configuration collé pour l'application : %s"
+
+#: ../bin/nova-api.py:59
+#, python-format
+msgid ""
+"App Config: %(api)s\n"
+"%(config)r"
+msgstr ""
+"App Config: %(api)s\n"
+"%(config)r"
+
+#: ../bin/nova-api.py:64
+#, python-format
+msgid "Running %s API"
+msgstr "API %s en cours d'éxécution"
+
+#: ../bin/nova-api.py:69
+#, python-format
+msgid "No known API applications configured in %s."
+msgstr "Pas d'API d'applications connue configurée pour %s."
+
+#: ../bin/nova-api.py:83
+#, python-format
+msgid "Starting nova-api node (version %s)"
+msgstr "Démarrage du noeud nova-api (version %s)"
+
+#: ../bin/nova-api.py:89
+#, python-format
+msgid "No paste configuration found for: %s"
+msgstr "Pas de configuration collée trouvée : %s"
+
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:84
+#, python-format
+msgid "Argument %(key)s value %(value)s is too short."
+msgstr "La valeur %(value)s pour l'argument %(key)s est trop courte."
+
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:89
+#, python-format
+msgid "Argument %(key)s value %(value)s contains invalid characters."
+msgstr ""
+"La valeur %(value)s pour l'argument %(key)s contient des caractères "
+"interdits."
+
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:94
+#, python-format
+msgid "Argument %(key)s value %(value)s starts with a hyphen."
+msgstr ""
+"La valeur %(value)s pour l'argument %(key)s débute par un trait d'union."
+
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:102
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:130
+#, python-format
+msgid "Argument %s is required."
+msgstr "L'argument %s est requis."
+
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:117
+#, python-format
+msgid ""
+"Argument %(key)s may not take value %(value)s. Valid values are ['true', "
+"'false']."
+msgstr ""
+"La valeur %(value)s pour l'argument %(key)s n'est pas valide. Les valeurs "
+"autorisées sont ['true', 'false']."
+
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:163
+#, python-format
+msgid ""
+"Created VDI %(vdi_ref)s (%(label)s, %(size)s, %(read_only)s) on %(sr_ref)s."
+msgstr ""
+"La VDI %(vdi_ref)s (%(label)s, %(size)s, %(read_only)s) a été créée sur "
+"%(sr_ref)s."
+
+#: ../nova/virt/xenapi/vmops.py:67
+#, python-format
+msgid "Attempted to create non-unique name %s"
+msgstr "Tentative de création d'un nom non unique %s"
+
+#: ../nova/virt/xenapi/vmops.py:73
+#, python-format
+msgid "instance %(name)s: not enough free memory"
+msgstr "instance %(name)s: pas assez de mémoire"
+
+#: ../nova/virt/xenapi/vmops.py:148
+#, python-format
+msgid "Starting VM %s..."
+msgstr "Démarrage de la VM %s..."
+
+#: ../nova/virt/xenapi/vmops.py:151
+#, python-format
+msgid "Spawning VM %(instance_name)s created %(vm_ref)s."
+msgstr "La VM %(instance_name)s a créé %(vm_ref)s."
+
+#: ../nova/virt/xenapi/vmops.py:162
+#, python-format
+msgid "Invalid value for onset_files: '%s'"
+msgstr "Valeur interdite pour onset_files : '%s'"
+
+#: ../nova/virt/xenapi/vmops.py:167
+#, python-format
+msgid "Injecting file path: '%s'"
+msgstr "Injection du chemin d'accès : '%s'"
+
+#: ../nova/virt/xenapi/vmops.py:180
+#, python-format
+msgid "Instance %s: booted"
+msgstr "Instance %s : démarée"
+
+#: ../nova/virt/xenapi/vmops.py:232
+#, python-format
+msgid "Instance not present %s"
+msgstr "Instance non présente %s"
+
+#. TODO(sirp): Add quiesce and VSS locking support when Windows support
+#. is added
+#: ../nova/virt/xenapi/vmops.py:261
+#, python-format
+msgid "Starting snapshot for VM %s"
+msgstr "Début de création d'instantané (snapshot) pour la VM %s"
+
+#: ../nova/virt/xenapi/vmops.py:269
+#, python-format
+msgid "Unable to Snapshot %(vm_ref)s: %(exc)s"
+msgstr "Impossible de faire un instantané de %(vm_ref)s: %(exc)s"
+
+#: ../nova/virt/xenapi/vmops.py:280
+#, python-format
+msgid "Finished snapshot and upload for VM %s"
+msgstr "Fin de l'instantané et du chargement de VM %s"
+
+#: ../nova/virt/xenapi/vmops.py:356
+#, python-format
+msgid "VM %(vm)s already halted, skipping shutdown..."
+msgstr "La VM %(vm)s est déjà arrété, exctinction évitée."
+
+#: ../nova/virt/xenapi/vmops.py:389
+msgid "Removing kernel/ramdisk files"
+msgstr "Suppression des fichiers noyau/ramdisk"
+
+#: ../nova/virt/xenapi/vmops.py:399
+msgid "kernel/ramdisk files removed"
+msgstr "Fichiers noyau/ramdisk supprimés"
+
+#: ../nova/virt/xenapi/vmops.py:561
+#, python-format
+msgid ""
+"TIMEOUT: The call to %(method)s timed out. VM id=%(instance_id)s; "
+"args=%(strargs)s"
+msgstr ""
+"DELAI DEPASSE : L'appel de %(method)s à depasser de délai de réponse "
+"maximal. VM id=%(instance_id)s; args=%(strargs)s"
+
+#: ../nova/virt/xenapi/vmops.py:564
+#, python-format
+msgid ""
+"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. VM "
+"id=%(instance_id)s; args=%(strargs)s"
+msgstr ""
+"NON IMPLEMENTE : l'appel de %(method)s n'est pas pris en compte par l'agent. "
+"VM id=%(instance_id)s; args=%(strargs)s"
+
+#: ../nova/virt/xenapi/vmops.py:569
+#, python-format
+msgid ""
+"The call to %(method)s returned an error: %(e)s. VM id=%(instance_id)s; "
+"args=%(strargs)s"
+msgstr ""
+"L'appel de %(method)s à renvoyé l'erreur : %(e)s. VM id=%(instance_id)s; "
+"args=%(strargs)s"
+
+#: ../nova/virt/xenapi/vmops.py:760
+#, python-format
+msgid "OpenSSL error: %s"
+msgstr "Erreur OpenSSL : %s"
+
+#: ../nova/tests/test_compute.py:148
+#, python-format
+msgid "Running instances: %s"
+msgstr "Instance actives : %s"
+
+#: ../nova/tests/test_compute.py:154
+#, python-format
+msgid "After terminating instances: %s"
+msgstr "Après l'arrêt d'instances : %s"
+
+#: ../nova/cloudpipe/pipelib.py:45
+msgid "Template for script to run on cloudpipe instance boot"
+msgstr "Patron du script à exécuter au boot d'instance cloudpipe"
+
+#: ../nova/cloudpipe/pipelib.py:48
+msgid "Network to push into openvpn config"
+msgstr "Réseau à passer à la configuration d'openvpn"
+
+#: ../nova/cloudpipe/pipelib.py:51
+msgid "Netmask to push into openvpn config"
+msgstr "Masque réseau à passer à la configuration d'openvpn"
+
+#: ../nova/cloudpipe/pipelib.py:97
+#, python-format
+msgid "Launching VPN for %s"
+msgstr "Démarrage du VPN pour %s"
+
+#: ../nova/db/sqlalchemy/migration.py:35
+msgid "python-migrate is not installed. Exiting."
+msgstr "python-migrate n'est pas installé. Fin d'éxécution."
+
+#: ../nova/image/s3.py:99
+#, python-format
+msgid "Image %s could not be found"
+msgstr "L'image %s n'a pas été trouvée"
+
+#: ../nova/api/ec2/__init__.py:121
+msgid "Too many failed authentications."
+msgstr "Trop d'erreur d'authentification"
+
+#: ../nova/api/ec2/__init__.py:131
+#, python-format
+msgid ""
+"Access key %(access_key)s has had %(failures)d failed authentications and "
+"will be locked out for %(lock_mins)d minutes."
+msgstr ""
+"La clef d'accès %(access_key)s a rencontrée %(failures)d echecs "
+"d'authentification et sera par conséquent vérouillée pour %(lock_mins)d "
+"minutes."
+
+#: ../nova/api/ec2/__init__.py:169 ../nova/objectstore/handler.py:140
+#, python-format
+msgid "Authentication Failure: %s"
+msgstr "Echec d'authentification : %s"
+
+#: ../nova/api/ec2/__init__.py:182
+#, python-format
+msgid "Authenticated Request For %(uname)s:%(pname)s)"
+msgstr "Requête authentifiée pour : %(uname)s:%(pname)s)"
+
+#: ../nova/api/ec2/__init__.py:207
+#, python-format
+msgid "action: %s"
+msgstr "action: %s"
+
+#: ../nova/api/ec2/__init__.py:209
+#, python-format
+msgid "arg: %(key)s\t\tval: %(value)s"
+msgstr "arg: %(key)s\t\tval: %(value)s"
+
+#: ../nova/api/ec2/__init__.py:281
+#, python-format
+msgid ""
+"Unauthorized request for controller=%(controller)s and action=%(action)s"
+msgstr ""
+"Requête non authorisé pour le controlleur=%(controller)s et "
+"l'action=%(action)s"
+
+#: ../nova/api/ec2/__init__.py:314
+#, python-format
+msgid "InstanceNotFound raised: %s"
+msgstr "\"Instance non trouvée\" remontée : %s"
+
+#: ../nova/api/ec2/__init__.py:320
+#, python-format
+msgid "VolumeNotFound raised: %s"
+msgstr "\"Volume non trouvé\" remonté : %s"
+
+#: ../nova/api/ec2/__init__.py:326
+#, python-format
+msgid "NotFound raised: %s"
+msgstr "\"Non trouvé\" remonté : %s"
+
+#: ../nova/api/ec2/__init__.py:329
+#, python-format
+msgid "ApiError raised: %s"
+msgstr "\"Erreur API\" remontée : %s"
+
+#: ../nova/api/ec2/__init__.py:338
+#, python-format
+msgid "Unexpected error raised: %s"
+msgstr "\"Erreur inopinée\" remontée : %s"
+
+#: ../nova/api/ec2/__init__.py:343
+msgid "An unknown error has occurred. Please try your request again."
+msgstr ""
+"Une erreur inopinée à eu lieu. Merci d'essayer votre requête à nouveau."
+
+#: ../nova/auth/dbdriver.py:84
+#, python-format
+msgid "User %s already exists"
+msgstr "L'utilisateur %s existe déjà"
+
+#: ../nova/auth/dbdriver.py:106 ../nova/auth/ldapdriver.py:232
+#, python-format
+msgid "Project can't be created because manager %s doesn't exist"
+msgstr "Le projet ne peut pas être créé car le manager %s n'existe pas"
+
+#: ../nova/auth/dbdriver.py:122 ../nova/auth/ldapdriver.py:243
+#, python-format
+msgid "Project can't be created because user %s doesn't exist"
+msgstr "Le projet ne peut pas être créé car l'utiisateur %s n'existe pas"
+
+#: ../nova/auth/dbdriver.py:135 ../nova/auth/ldapdriver.py:229
+#, python-format
+msgid "Project can't be created because project %s already exists"
+msgstr "Le projet ne peut pas être créé car projet %s existe déjà"
+
+#: ../nova/auth/dbdriver.py:157 ../nova/auth/ldapdriver.py:268
+#, python-format
+msgid "Project can't be modified because manager %s doesn't exist"
+msgstr "Le projet ne peut pas être modifié car le manager %s n'existe pas"
+
+#: ../nova/auth/dbdriver.py:245
+#, python-format
+msgid "User \"%s\" not found"
+msgstr "Utilisateur \"%s\" non trouvé"
+
+#: ../nova/auth/dbdriver.py:248
+#, python-format
+msgid "Project \"%s\" not found"
+msgstr "Projet %s non trouvé"
+
+#: ../nova/virt/xenapi_conn.py:129
+msgid ""
+"Must specify xenapi_connection_url, xenapi_connection_username (optionally), "
+"and xenapi_connection_password to use connection_type=xenapi"
+msgstr ""
+"Doit spécifier xenapi_connection_url, xenapi_connection_username (optionel), "
+"et xenapi_connection_password pour utiliser connection_type=xenapi"
+
+#: ../nova/virt/xenapi_conn.py:311
+#, python-format
+msgid "Task [%(name)s] %(task)s status: success %(result)s"
+msgstr "Tâche [%(name)s] %(task)s état : succès %(result)s"
+
+#: ../nova/virt/xenapi_conn.py:317
+#, python-format
+msgid "Task [%(name)s] %(task)s status: %(status)s %(error_info)s"
+msgstr "Tâche [%(name)s] %(task)s état : %(status)s %(error_info)s"
+
+#: ../nova/virt/xenapi_conn.py:331 ../nova/virt/xenapi_conn.py:344
+#, python-format
+msgid "Got exception: %s"
+msgstr "Reçu exception : %s"
+
+#: ../nova/compute/monitor.py:259
+#, python-format
+msgid "updating %s..."
+msgstr "mise à jour %s..."
+
+#: ../nova/compute/monitor.py:289
+msgid "unexpected error during update"
+msgstr "erreur inopinée pendant la ise à jour"
+
+#: ../nova/compute/monitor.py:356
+#, 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\""
+
+#: ../nova/compute/monitor.py:379
+#, 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\""
+
+#: ../nova/compute/monitor.py:414
+msgid "unexpected exception getting connection"
+msgstr "erreur inopinée pendant la connexion"
+
+#: ../nova/compute/monitor.py:429
+#, python-format
+msgid "Found instance: %s"
+msgstr "Instance trouvée : %s"
+
+#: ../nova/volume/san.py:67
+#, python-format
+msgid "Could not find iSCSI export for volume %s"
+msgstr "Imposible de trouver une exportation iSCSI pour le volume %s"
+
+#: ../nova/api/ec2/apirequest.py:100
+#, python-format
+msgid ""
+"Unsupported API request: controller = %(controller)s, action = %(action)s"
+msgstr ""
+"Requête API non supportée : controleur = %(controller)s, action = %(action)s"
+
+#: ../nova/api/openstack/__init__.py:55
+#, python-format
+msgid "Caught error: %s"
+msgstr "Erreur interceptée : %s"
+
+#: ../nova/api/openstack/__init__.py:76
+msgid "Including admin operations in API."
+msgstr "Inclusion des opérations d'admin dans l'API."
+
+#: ../nova/console/xvp.py:99
+msgid "Rebuilding xvp conf"
+msgstr "Reconstruction de la configuration xvp"
+
+#: ../nova/console/xvp.py:116
+#, python-format
+msgid "Re-wrote %s"
+msgstr "Ré-écriture de %s"
+
+#: ../nova/console/xvp.py:121
+msgid "Stopping xvp"
+msgstr "Arrêt xvp"
+
+#: ../nova/console/xvp.py:134
+msgid "Starting xvp"
+msgstr "Démarrage xvp"
+
+#: ../nova/console/xvp.py:141
+#, python-format
+msgid "Error starting xvp: %s"
+msgstr "Erreur au démarrage xvp : %s"
+
+#: ../nova/console/xvp.py:144
+msgid "Restarting xvp"
+msgstr "Re-démarrage xvp"
+
+#: ../nova/console/xvp.py:146
+msgid "xvp not running..."
+msgstr "xvp non actif..."
+
+#: ../bin/nova-manage.py:272
+msgid ""
+"The above error may show that the database has not been created.\n"
+"Please create a database using nova-manage sync db before running this "
+"command."
+msgstr ""
+"L'erreur çi dessus peut indiquer que la base de données n'a pas été créée.\n"
+"Veuillez créer une base de données en utilisant nova-manage sync db avant "
+"d'utiliser cette commande."
+
+#: ../bin/nova-manage.py:426
+msgid ""
+"No more networks available. If this is a new installation, you need\n"
+"to call something like this:\n"
+"\n"
+" nova-manage network create 10.0.0.0/8 10 64\n"
+"\n"
+msgstr ""
+"Plus de réseaux disponibles. Si vous venez d'installer nova, vous devez "
+"exécuter une commande telle que :\n"
+"\n"
+" nova-manage network create 10.0.0.0/8 10 64\n"
+"\n"
+
+#: ../bin/nova-manage.py:431
+msgid ""
+"The above error may show that the certificate db has not been created.\n"
+"Please create a database by running a nova-api server on this host."
+msgstr ""
+"L'erreur çi dessus peut indiquer que la base de données de certificats n'a "
+"pas été créée.\n"
+"Veuillez créer une base de données en exécutant nova-api server sur cet hôte."
+
+#: ../bin/nova-manage.py:447 ../bin/nova-manage.py:536
+msgid "network"
+msgstr "réseau"
+
+#: ../bin/nova-manage.py:448
+msgid "IP address"
+msgstr "adresse IP"
+
+#: ../bin/nova-manage.py:449
+msgid "MAC address"
+msgstr "adresse MAC"
+
+#: ../bin/nova-manage.py:450
+msgid "hostname"
+msgstr "nom du serveur"
+
+#: ../bin/nova-manage.py:451
+msgid "host"
+msgstr "hôte"
+
+#: ../bin/nova-manage.py:537
+msgid "netmask"
+msgstr "masque de réseau"
+
+#: ../bin/nova-manage.py:538
+msgid "start address"
+msgstr "adresse de départ"
+
+#: ../nova/virt/disk.py:69
+#, python-format
+msgid "Failed to load partition: %s"
+msgstr "Impossible de charger la partition: %s"
+
+#: ../nova/virt/disk.py:91
+#, python-format
+msgid "Failed to mount filesystem: %s"
+msgstr "Impossible de monter le système de fichier : %s"
+
+#: ../nova/virt/disk.py:124
+#, python-format
+msgid "nbd device %s did not show up"
+msgstr "Device nbd %s n'est pas apparu"
+
+#: ../nova/virt/disk.py:128
+#, python-format
+msgid "Could not attach image to loopback: %s"
+msgstr "Impossible de lier l'image au loopback : %s"
+
+#: ../nova/virt/disk.py:151
+msgid "No free nbd devices"
+msgstr "Pas de device nbd libre"
+
+#: ../doc/ext/nova_todo.py:46
+#, python-format
+msgid "%(filename)s, line %(line_info)d"
+msgstr "%(filename)s, ligne %(line_info)d"
+
+#. FIXME(chiradeep): implement this
+#: ../nova/virt/hyperv.py:118
+msgid "In init host"
+msgstr "Dans init host"
+
+#: ../nova/virt/hyperv.py:131
+#, python-format
+msgid "Attempt to create duplicate vm %s"
+msgstr "Tentative de création de vm en doublon %s"
+
+#: ../nova/virt/hyperv.py:148
+#, python-format
+msgid "Starting VM %s "
+msgstr "Démarrage VM %s "
+
+#: ../nova/virt/hyperv.py:150
+#, python-format
+msgid "Started VM %s "
+msgstr "VM %s démarrée "
+
+#: ../nova/virt/hyperv.py:152
+#, python-format
+msgid "spawn vm failed: %s"
+msgstr "Erreur à l'activation VM : %s"
+
+#: ../nova/virt/hyperv.py:169
+#, python-format
+msgid "Failed to create VM %s"
+msgstr "Erreur de création VM %s"
+
+#: ../nova/virt/hyperv.py:188
+#, python-format
+msgid "Set memory for vm %s..."
+msgstr "Réglage de la mémoire sur VM %s..."
+
+#: ../nova/virt/hyperv.py:198
+#, python-format
+msgid "Set vcpus for vm %s..."
+msgstr "Réglage vcpus sur vm %s..."
+
+#: ../nova/virt/hyperv.py:202
+#, python-format
+msgid "Creating disk for %(vm_name)s by attaching disk file %(vhdfile)s"
+msgstr ""
+"Création du disque pour %(vm_name)s par liaison avec le fichier disque "
+"%(vhdfile)s"
+
+#: ../nova/virt/hyperv.py:227
+#, python-format
+msgid "Failed to add diskdrive to VM %s"
+msgstr "Impossible d'ajouter le disque à la VM %s"
+
+#: ../nova/virt/hyperv.py:230
+#, python-format
+msgid "New disk drive path is %s"
+msgstr "Nouveau chemin d'accès pour le disque : %s"
+
+#: ../nova/virt/hyperv.py:247
+#, python-format
+msgid "Failed to add vhd file to VM %s"
+msgstr "Impossible d'ajouter le fichier vhd à la VM %s"
+
+#: ../nova/virt/hyperv.py:249
+#, python-format
+msgid "Created disk for %s"
+msgstr "Disque créé pour %s"
+
+#: ../nova/virt/hyperv.py:253
+#, python-format
+msgid "Creating nic for %s "
+msgstr "Création de l'interface réseau pour %s "
+
+#: ../nova/virt/hyperv.py:272
+msgid "Failed creating a port on the external vswitch"
+msgstr "Erreur de création de port sur le vswitch externe"
+
+#: ../nova/virt/hyperv.py:273
+#, python-format
+msgid "Failed creating port for %s"
+msgstr "Erreur de création de port pour %s"
+
+#: ../nova/virt/hyperv.py:276
+#, python-format
+msgid "Created switch port %(vm_name)s on switch %(ext_path)s"
+msgstr "Le port switch %(vm_name)s a été créé sur le switch %(ext_path)s"
+
+#: ../nova/virt/hyperv.py:286
+#, python-format
+msgid "Failed to add nic to VM %s"
+msgstr "Impossible d'ajouter une interface réseau à la VM %s"
+
+#: ../nova/virt/hyperv.py:288
+#, python-format
+msgid "Created nic for %s "
+msgstr "Interface réseau créée pour %s "
+
+#: ../nova/virt/hyperv.py:321
+#, python-format
+msgid "WMI job failed: %s"
+msgstr "Tâche WMI echouée : %s"
+
+#: ../nova/virt/hyperv.py:325
+#, python-format
+msgid "WMI job succeeded: %(desc)s, Elapsed=%(elap)s "
+msgstr "Tâche WMI réussie : %(desc)s, Elapsed=%(elap)s "
+
+#: ../nova/virt/hyperv.py:361
+#, python-format
+msgid "Got request to destroy vm %s"
+msgstr "Requête de suppression de la VM %s reçue"
+
+#: ../nova/virt/hyperv.py:386
+#, python-format
+msgid "Failed to destroy vm %s"
+msgstr "Impossible de supprimer la VM %s"
+
+#: ../nova/virt/hyperv.py:393
+#, python-format
+msgid "Del: disk %(vhdfile)s vm %(instance_name)s"
+msgstr "Suppression: disque %(vhdfile)s vm %(instance_name)s"
+
+#: ../nova/virt/hyperv.py:415
+#, python-format
+msgid ""
+"Got Info for vm %(instance_id)s: state=%(state)s, mem=%(memusage)s, "
+"num_cpu=%(numprocs)s, cpu_time=%(uptime)s"
+msgstr ""
+"Informations reçues pour la VM %(instance_id)s: état=%(state)s, "
+"mem=%(memusage)s, num_cpu=%(numprocs)s, cpu_time=%(uptime)s"
+
+#: ../nova/virt/hyperv.py:451
+#, python-format
+msgid "Successfully changed vm state of %(vm_name)s to %(req_state)s"
+msgstr "Changement d'état de la VM %(vm_name)s en %(req_state)s réussi"
+
+#: ../nova/virt/hyperv.py:454
+#, python-format
+msgid "Failed to change vm state of %(vm_name)s to %(req_state)s"
+msgstr "Impossible de changer l'état de la vm %(vm_name)s en %(req_state)s"
+
+#: ../nova/compute/api.py:71
+#, python-format
+msgid "Instance %d was not found in get_network_topic"
+msgstr "Instance %d non trouvée dans get_network_topic"
+
+#: ../nova/compute/api.py:77
+#, python-format
+msgid "Instance %d has no host"
+msgstr "Instance %d n'a pas d'hôte"
+
+#: ../nova/compute/api.py:97
+#, python-format
+msgid "Quota exceeeded for %(pid)s, tried to run %(min_count)s instances"
+msgstr ""
+"Quota dépassé pour %(pid)s, lors de la tentative d'exécution de "
+"%(min_count)s instances"
+
+#: ../nova/compute/api.py:99
+#, python-format
+msgid ""
+"Instance quota exceeded. You can only run %s more instances of this type."
+msgstr ""
+"Quota d'instances dépassé. Vous ne pouvez éxécuter que %s instances de ce "
+"type de plus."
+
+#: ../nova/compute/api.py:112
+msgid "Creating a raw instance"
+msgstr "Création d'une instance raw"
+
+#: ../nova/compute/api.py:160
+#, python-format
+msgid "Going to run %s instances..."
+msgstr "Démarrage de %s instances..."
+
+#: ../nova/compute/api.py:187
+#, python-format
+msgid "Casting to scheduler for %(pid)s/%(uid)s's instance %(instance_id)s"
+msgstr "Envoi au scheduler de %(pid)s/%(uid)s's instance %(instance_id)s"
+
+#: ../nova/compute/api.py:292
+#, python-format
+msgid "Going to try to terminate %s"
+msgstr "Va essayer d'arrêter %s"
+
+#: ../nova/compute/api.py:296
+#, python-format
+msgid "Instance %d was not found during terminate"
+msgstr "L'instance %d n'a pas été trouvée durant l'arrêt"
+
+#: ../nova/compute/api.py:301
+#, python-format
+msgid "Instance %d is already being terminated"
+msgstr "L'instance %d est déjà en cours d'arrêt"
+
+#: ../nova/compute/api.py:481
+#, python-format
+msgid "Invalid device specified: %s. Example device: /dev/vdb"
+msgstr "Device spécifié invalide : %s. Exemple de device: /dev/vdb"
+
+#: ../nova/compute/api.py:496
+msgid "Volume isn't attached to anything!"
+msgstr "Le volume n'est pas attaché à quoi que ce soit!"
+
+#: ../nova/rpc.py:98
+#, python-format
+msgid ""
+"AMQP server on %(fl_host)s:%(fl_port)d is unreachable. Trying again in "
+"%(fl_intv)d seconds."
+msgstr ""
+"Le serveur AMQP sur %(fl_host)s:%(fl_port)d n'est pas joignable. Nouvel "
+"essai dans %(fl_intv)d secondes."
+
+#: ../nova/rpc.py:103
+#, python-format
+msgid "Unable to connect to AMQP server after %d tries. Shutting down."
+msgstr ""
+"Impossible de se connecter au serveur AMQP après %d essais. Extinction."
+
+#: ../nova/rpc.py:122
+msgid "Reconnected to queue"
+msgstr "Reconnection à la queue"
+
+#: ../nova/rpc.py:129
+msgid "Failed to fetch message from queue"
+msgstr "Impossible de récuperrer les message de la queue"
+
+#: ../nova/rpc.py:159
+#, python-format
+msgid "Initing the Adapter Consumer for %s"
+msgstr "Initialisation du Consomateur d'Adapteur pour %s"
+
+#: ../nova/rpc.py:178
+#, python-format
+msgid "received %s"
+msgstr "%s reçu"
+
+#. NOTE(vish): we may not want to ack here, but that means that bad
+#. messages stay in the queue indefinitely, so for now
+#. we just log the message and send an error string
+#. back to the caller
+#: ../nova/rpc.py:191
+#, python-format
+msgid "no method for message: %s"
+msgstr "Pas de méthode pour le message : %s"
+
+#: ../nova/rpc.py:192
+#, python-format
+msgid "No method for message: %s"
+msgstr "Pas de méthode pour le message : %s"
+
+#: ../nova/rpc.py:253
+#, python-format
+msgid "Returning exception %s to caller"
+msgstr "Renvoi de l'exception %s à l'appelant"
+
+#: ../nova/rpc.py:294
+#, python-format
+msgid "unpacked context: %s"
+msgstr "Contexte décompacté : %s"
+
+#: ../nova/rpc.py:313
+msgid "Making asynchronous call..."
+msgstr "En cours d'appel assynchrone..."
+
+#: ../nova/rpc.py:316
+#, python-format
+msgid "MSG_ID is %s"
+msgstr "MSG_ID est %s"
+
+#: ../nova/rpc.py:354
+msgid "Making asynchronous cast..."
+msgstr "En cours de diffusion assynchrone"
+
+#: ../nova/rpc.py:364
+#, python-format
+msgid "response %s"
+msgstr "réponse %s"
+
+#: ../nova/rpc.py:373
+#, python-format
+msgid "topic is %s"
+msgstr "le sujet est %s"
+
+#: ../nova/rpc.py:374
+#, python-format
+msgid "message %s"
+msgstr "message %s"
+
+#: ../nova/volume/driver.py:78
+#, python-format
+msgid "Recovering from a failed execute. Try number %s"
+msgstr "Récupération après une exécution erronée. Tentative numéro %s"
+
+#: ../nova/volume/driver.py:87
+#, python-format
+msgid "volume group %s doesn't exist"
+msgstr "Le groupe de volume %s n'existe pas"
+
+#: ../nova/volume/driver.py:220
+#, python-format
+msgid "FAKE AOE: %s"
+msgstr "FAUX AOE: %s"
+
+#: ../nova/volume/driver.py:233
+msgid "Skipping ensure_export. No iscsi_target "
+msgstr "ensure_export sauté. Pas d'iscsi_target "
+
+#: ../nova/volume/driver.py:279 ../nova/volume/driver.py:288
+msgid "Skipping remove_export. No iscsi_target "
+msgstr "remove_export sauté. Pas d'iscsi_target "
+
+#: ../nova/volume/driver.py:347
+#, python-format
+msgid "FAKE ISCSI: %s"
+msgstr "FAUX ISCSI: %s"
+
+#: ../nova/volume/driver.py:359
+#, python-format
+msgid "rbd has no pool %s"
+msgstr "rbd n'as pas de file %s"
+
+#: ../nova/volume/driver.py:414
+#, python-format
+msgid "Sheepdog is not working: %s"
+msgstr "Sheepdog n'est pas actif : %s"
+
+#: ../nova/volume/driver.py:416
+msgid "Sheepdog is not working"
+msgstr "Sheepdog n'est pas actif"
+
+#: ../nova/wsgi.py:68
+#, python-format
+msgid "Starting %(arg0)s on %(host)s:%(port)s"
+msgstr "Démarrage %(arg0)s sur %(host)s:%(port)s"
+
+#: ../nova/wsgi.py:147
+msgid "You must implement __call__"
+msgstr "Vous devez implémenter __call__"
+
+#: ../bin/nova-instancemonitor.py:55
+msgid "Starting instance monitor"
+msgstr "Démarrage du superviseur d'instance"
+
+#: ../bin/nova-dhcpbridge.py:58
+msgid "leasing ip"
+msgstr "Allocation IP"
+
+#: ../bin/nova-dhcpbridge.py:73
+msgid "Adopted old lease or got a change of mac/hostname"
+msgstr "Allocation périmée accepté ou changement de nom/adresse MAC d'hôte"
+
+#: ../bin/nova-dhcpbridge.py:80
+msgid "releasing ip"
+msgstr "Libération IP"
+
+#: ../bin/nova-dhcpbridge.py:123
+#, python-format
+msgid ""
+"Called %(action)s for mac %(mac)s with ip %(ip)s and hostname %(hostname)s "
+"on interface %(interface)s"
+msgstr ""
+"%(action)s appelée pour MAC %(mac)s avec IP %(ip)s nom d'hôte %(hostname)s "
+"sur l'interface %(interface)s"
+
+#: ../nova/virt/fake.py:239
+#, python-format
+msgid "Instance %s Not Found"
+msgstr "Instance %s Non trouvée"
+
+#: ../nova/network/manager.py:153
+#, python-format
+msgid "Dissassociated %s stale fixed ip(s)"
+msgstr "Désassociation de %s ip(s) fixes périmées"
+
+#: ../nova/network/manager.py:157
+msgid "setting network host"
+msgstr "réglage de l'hôte réseau"
+
+#: ../nova/network/manager.py:212
+#, python-format
+msgid "Leasing IP %s"
+msgstr "Allocation IP %s"
+
+#: ../nova/network/manager.py:216
+#, python-format
+msgid "IP %s leased that isn't associated"
+msgstr "IP %s allouée qui n'est pas associée"
+
+#: ../nova/network/manager.py:220
+#, python-format
+msgid "IP %(address)s leased to bad mac %(inst_addr)s vs %(mac)s"
+msgstr "IP %(address)s allouée à une mauvaise MAC %(inst_addr)s pour %(mac)s"
+
+#: ../nova/network/manager.py:228
+#, python-format
+msgid "IP %s leased that was already deallocated"
+msgstr "IP %s alloué qui était déjà désallouée"
+
+#: ../nova/network/manager.py:233
+#, python-format
+msgid "Releasing IP %s"
+msgstr "Libération IP %s"
+
+#: ../nova/network/manager.py:237
+#, python-format
+msgid "IP %s released that isn't associated"
+msgstr "IP %s libérée qui n'était pas associée"
+
+#: ../nova/network/manager.py:241
+#, python-format
+msgid "IP %(address)s released from bad mac %(inst_addr)s vs %(mac)s"
+msgstr ""
+"IP %(address)s libérée par une mauvaise MAC %(inst_addr)s pour %(mac)s"
+
+#: ../nova/network/manager.py:244
+#, python-format
+msgid "IP %s released that was not leased"
+msgstr "IP %s libérée qui n'était pas allouée"
+
+#: ../nova/network/manager.py:519
+msgid ""
+"The sum between the number of networks and the vlan start cannot be greater "
+"than 4094"
+msgstr ""
+"La somme du nombre de réseau et le début de vlan ne peut excéder 4094"
+
+#: ../nova/virt/xenapi/volume_utils.py:57
+#, python-format
+msgid "Introducing %s..."
+msgstr "Introduction de %s"
+
+#: ../nova/virt/xenapi/volume_utils.py:74
+#, python-format
+msgid "Introduced %(label)s as %(sr_ref)s."
+msgstr "%(label)s introduit comme %(sr_ref)s."
+
+#: ../nova/virt/xenapi/volume_utils.py:78
+msgid "Unable to create Storage Repository"
+msgstr "Impossible de créer le dépot de stockage"
+
+#: ../nova/virt/xenapi/volume_utils.py:90
+#, python-format
+msgid "Unable to find SR from VBD %s"
+msgstr "Impossible de trouver SR du VDB %s"
+
+#: ../nova/virt/xenapi/volume_utils.py:96
+#, python-format
+msgid "Forgetting SR %s ... "
+msgstr "Démémorisation du SR %s "
+
+#: ../nova/virt/xenapi/volume_utils.py:101
+#, python-format
+msgid "Ignoring exception %(exc)s when getting PBDs for %(sr_ref)s"
+msgstr ""
+"Exception %(exc)s ignorée pendant l'obtention de PBDs pour %(sr_ref)s"
+
+#: ../nova/virt/xenapi/volume_utils.py:107
+#, python-format
+msgid "Ignoring exception %(exc)s when unplugging PBD %(pbd)s"
+msgstr "Exception %(exc)s ignorée pendant la deconnexion du PBD %(pbd)s"
+
+#: ../nova/virt/xenapi/volume_utils.py:111
+#, python-format
+msgid "Forgetting SR %s done."
+msgstr "Démémorisation du SR %s terminée"
+
+#: ../nova/virt/xenapi/volume_utils.py:113
+#, python-format
+msgid "Ignoring exception %(exc)s when forgetting SR %(sr_ref)s"
+msgstr "Exception %(exc)s ignorée pendant la démémorisation du SR %(sr_ref)s"
+
+#: ../nova/virt/xenapi/volume_utils.py:123
+#, python-format
+msgid "Unable to introduce VDI on SR %s"
+msgstr "Impossible d'introduire VDI sur SR %s"
+
+#: ../nova/virt/xenapi/volume_utils.py:128
+#, python-format
+msgid "Unable to get record of VDI %s on"
+msgstr "Impossible de récuppérer l'enregistrement du VDI %s sur"
+
+#: ../nova/virt/xenapi/volume_utils.py:146
+#, python-format
+msgid "Unable to introduce VDI for SR %s"
+msgstr "Impossible d'introduire le VDI pour SR %s"
+
+#: ../nova/virt/xenapi/volume_utils.py:175
+#, python-format
+msgid "Unable to obtain target information %(device_path)s, %(mountpoint)s"
+msgstr ""
+"Impossible de récuppérer les informations de destination %(device_path)s, "
+"%(mountpoint)s"
+
+#: ../nova/virt/xenapi/volume_utils.py:197
+#, python-format
+msgid "Mountpoint cannot be translated: %s"
+msgstr "Le point de montage ne peut pas être traduit : %s"
+
+#: ../nova/objectstore/image.py:262
+#, python-format
+msgid "Failed to decrypt private key: %s"
+msgstr "Impossible de déchiffrer la clef privée : %s"
+
+#: ../nova/objectstore/image.py:269
+#, python-format
+msgid "Failed to decrypt initialization vector: %s"
+msgstr "Impossible de déchiffrer le vecteur d'initialisation : %s"
+
+#: ../nova/objectstore/image.py:277
+#, python-format
+msgid "Failed to decrypt image file %(image_file)s: %(err)s"
+msgstr "Impossible de déchiffrer le fichier image %(image_file)s: %(err)s"
+
+#: ../nova/objectstore/handler.py:106
+#, python-format
+msgid "Unknown S3 value type %r"
+msgstr "Type de valeur S3 inconnu %r"
+
+#: ../nova/objectstore/handler.py:137
+msgid "Authenticated request"
+msgstr "Requête authentifiée"
+
+#: ../nova/objectstore/handler.py:182
+msgid "List of buckets requested"
+msgstr "Listes de conteneurs (buckets) demandée"
+
+#: ../nova/objectstore/handler.py:209
+#, python-format
+msgid "List keys for bucket %s"
+msgstr "List des clefs pour le conteneur (bucket) %s"
+
+#: ../nova/objectstore/handler.py:217
+#, python-format
+msgid "Unauthorized attempt to access bucket %s"
+msgstr "Demande d'accès au conteneur %s non autorisé"
+
+#: ../nova/objectstore/handler.py:235
+#, python-format
+msgid "Creating bucket %s"
+msgstr "Création du conteneur %s"
+
+#: ../nova/objectstore/handler.py:245
+#, python-format
+msgid "Deleting bucket %s"
+msgstr "Suppression du conteneur %s"
+
+#: ../nova/objectstore/handler.py:249
+#, python-format
+msgid "Unauthorized attempt to delete bucket %s"
+msgstr "Tentative de suppression du conteneur %s non autorisée"
+
+#: ../nova/objectstore/handler.py:273
+#, python-format
+msgid "Getting object: %(bname)s / %(nm)s"
+msgstr "Récupération de l'objet : %(bname)s / %(nm)s"
+
+#: ../nova/objectstore/handler.py:276
+#, python-format
+msgid "Unauthorized attempt to get object %(nm)s from bucket %(bname)s"
+msgstr ""
+"Tentative d'accès à l'objet %(nm)s non autorisée pour le conteneur %(bname)s"
+
+#: ../nova/objectstore/handler.py:296
+#, python-format
+msgid "Putting object: %(bname)s / %(nm)s"
+msgstr "Injection d'objet : %(bname)s / %(nm)s"
+
+#: ../nova/objectstore/handler.py:299
+#, python-format
+msgid "Unauthorized attempt to upload object %(nm)s to bucket %(bname)s"
+msgstr ""
+"Tentative de chargement de l'objet %(nm)s vers le conteneur %(bname)s non "
+"autorisée"
+
+#: ../nova/objectstore/handler.py:318
+#, python-format
+msgid "Deleting object: %(bname)s / %(nm)s"
+msgstr "Suppression de l'objet : %(bname)s / %(nm)s"
+
+#: ../nova/objectstore/handler.py:322
+#, python-format
+msgid "Unauthorized attempt to delete object %(nm)s from bucket %(bname)s"
+msgstr ""
+"Tentative de suppression de l'objet %(nm)s non autorisé pour le conteneur "
+"%(bname)s"
+
+#: ../nova/objectstore/handler.py:396
+#, python-format
+msgid "Not authorized to upload image: invalid directory %s"
+msgstr "Chargement d'image non autorisé : répertoire invalide %s"
+
+#: ../nova/objectstore/handler.py:404
+#, python-format
+msgid "Not authorized to upload image: unauthorized bucket %s"
+msgstr "Chargement d'image non autorisé : conteneur non autorisé %s"
+
+#: ../nova/objectstore/handler.py:409
+#, python-format
+msgid "Starting image upload: %s"
+msgstr "Début de chargement d'image: %s"
+
+#: ../nova/objectstore/handler.py:423
+#, python-format
+msgid "Not authorized to update attributes of image %s"
+msgstr "Tentative de mise a jour d'attributs non autorisée pour l'image %s"
+
+#: ../nova/objectstore/handler.py:431
+#, python-format
+msgid "Toggling publicity flag of image %(image_id)s %(newstatus)r"
+msgstr ""
+"Basculement de l'attribut public de l'image %(image_id)s %(newstatus)r"
+
+#. other attributes imply update
+#: ../nova/objectstore/handler.py:436
+#, python-format
+msgid "Updating user fields on image %s"
+msgstr "Mise à jour des champs utilisateurs sur l'image %s"
+
+#: ../nova/objectstore/handler.py:450
+#, python-format
+msgid "Unauthorized attempt to delete image %s"
+msgstr "Tentative de suppression de l'image %s non autorisée"
+
+#: ../nova/objectstore/handler.py:455
+#, python-format
+msgid "Deleted image: %s"
+msgstr "Image supprimée : %s"
+
+#: ../nova/auth/manager.py:259
+#, python-format
+msgid "Looking up user: %r"
+msgstr "Recherche de l'utilisateur : %r"
+
+#: ../nova/auth/manager.py:263
+#, python-format
+msgid "Failed authorization for access key %s"
+msgstr "Autorisation refusée pour la clef d'accès %s"
+
+#: ../nova/auth/manager.py:264
+#, python-format
+msgid "No user found for access key %s"
+msgstr "Pas d'utilisateur trouvé pour la clef d'accès %s"
+
+#: ../nova/auth/manager.py:270
+#, python-format
+msgid "Using project name = user name (%s)"
+msgstr "Nom de projet utilisé = nom d'utilisateur (%s)"
+
+#: ../nova/auth/manager.py:277
+#, python-format
+msgid "failed authorization: no project named %(pjid)s (user=%(uname)s)"
+msgstr ""
+"Autorisation refusée : pas de projet nommé %(pjid)s (utilisateur=%(uname)s)"
+
+#: ../nova/auth/manager.py:279
+#, python-format
+msgid "No project called %s could be found"
+msgstr "Aucun projet nommé %s trouvé"
+
+#: ../nova/auth/manager.py:287
+#, python-format
+msgid ""
+"Failed authorization: user %(uname)s not admin and not member of project "
+"%(pjname)s"
+msgstr ""
+"Autorisation refusée : utilisateur %(uname)s n'est ni admin ni membre du "
+"projet %(pjname)s"
+
+#: ../nova/auth/manager.py:289
+#, python-format
+msgid "User %(uid)s is not a member of project %(pjid)s"
+msgstr "L'utilisateur %(uid)s n'est pas membre du projet %(pjid)s"
+
+#: ../nova/auth/manager.py:298 ../nova/auth/manager.py:309
+#, python-format
+msgid "Invalid signature for user %s"
+msgstr "Signature non valide pour l'utilisateur %s"
+
+#: ../nova/auth/manager.py:299 ../nova/auth/manager.py:310
+msgid "Signature does not match"
+msgstr "La signature ne correspond pas"
+
+#: ../nova/auth/manager.py:380
+msgid "Must specify project"
+msgstr "Le projet doit être spécifié"
+
+#: ../nova/auth/manager.py:414
+#, python-format
+msgid "The %s role can not be found"
+msgstr "Le rôle %s n'a pas été trouvé"
+
+#: ../nova/auth/manager.py:416
+#, python-format
+msgid "The %s role is global only"
+msgstr "Le rôle %s est obligatoirement global"
+
+#: ../nova/auth/manager.py:420
+#, python-format
+msgid "Adding role %(role)s to user %(uid)s in project %(pid)s"
+msgstr ""
+"Ajout du rôle %(role)s à l'utilisateur %(uid)s pour le projet %(pid)s"
+
+#: ../nova/auth/manager.py:423
+#, python-format
+msgid "Adding sitewide role %(role)s to user %(uid)s"
+msgstr "Ajout du rôle global %(role)s pour l'utilisateur %(uid)s"
+
+#: ../nova/auth/manager.py:448
+#, python-format
+msgid "Removing role %(role)s from user %(uid)s on project %(pid)s"
+msgstr ""
+"Suppression du rôle %(role)s pour l'utilisateur %(uid)s dans le projet "
+"%(pid)s"
+
+#: ../nova/auth/manager.py:451
+#, python-format
+msgid "Removing sitewide role %(role)s from user %(uid)s"
+msgstr "Suppression du role global %(role)s pour l'utilisateur %(uid)s"
+
+#: ../nova/auth/manager.py:515
+#, python-format
+msgid "Created project %(name)s with manager %(manager_user)s"
+msgstr "Création du projet %(name)s ayant pour manager %(manager_user)s"
+
+#: ../nova/auth/manager.py:533
+#, python-format
+msgid "modifying project %s"
+msgstr "modification du projet %s"
+
+#: ../nova/auth/manager.py:545
+#, python-format
+msgid "Adding user %(uid)s to project %(pid)s"
+msgstr "Ajout de l'utilisateur %(uid)s au projet %(pid)s"
+
+#: ../nova/auth/manager.py:566
+#, python-format
+msgid "Remove user %(uid)s from project %(pid)s"
+msgstr "Suppression de l'utilisateur %(uid)s du projet %(pid)s"
+
+#: ../nova/auth/manager.py:592
+#, python-format
+msgid "Deleting project %s"
+msgstr "Suppression du projet %s"
+
+#: ../nova/auth/manager.py:650
+#, python-format
+msgid "Created user %(rvname)s (admin: %(rvadmin)r)"
+msgstr "Utilisateur créé %(rvname)s (admin: %(rvadmin)r)"
+
+#: ../nova/auth/manager.py:659
+#, python-format
+msgid "Deleting user %s"
+msgstr "Suppression de l'utilisateur %s"
+
+#: ../nova/auth/manager.py:669
+#, python-format
+msgid "Access Key change for user %s"
+msgstr "Clef d'accès changée pour l'utilisateur %s"
+
+#: ../nova/auth/manager.py:671
+#, python-format
+msgid "Secret Key change for user %s"
+msgstr "Clef secrète changée pour l'utilisateur %s"
+
+#: ../nova/auth/manager.py:673
+#, python-format
+msgid "Admin status set to %(admin)r for user %(uid)s"
+msgstr "Statut admin changé en %(admin)r pour l'utilisateur %(uid)s"
+
+#: ../nova/auth/manager.py:722
+#, python-format
+msgid "No vpn data for project %s"
+msgstr "Pas de données VPN pour le projet %s"
+
+#: ../nova/service.py:161
+#, python-format
+msgid "Starting %(topic)s node (version %(vcs_string)s)"
+msgstr "Démarrage du noeud %(topic)s (version %(vcs_string)s)"
+
+#: ../nova/service.py:174
+msgid "Service killed that has no database entry"
+msgstr "Service détruit sans entrée dans la base de données"
+
+#: ../nova/service.py:195
+msgid "The service database object disappeared, Recreating it."
+msgstr ""
+"L'objet du service de base de données à disparru, re-création en cours."
+
+#: ../nova/service.py:207
+msgid "Recovered model server connection!"
+msgstr "Récupération du modelle de connexion serveur terminée!"
+
+#: ../nova/service.py:213
+msgid "model server went away"
+msgstr "Le modèle de serveur à disparu"
+
+#: ../nova/auth/ldapdriver.py:174
+#, python-format
+msgid "LDAP user %s already exists"
+msgstr "L'utilisateur LDAP %s existe déjà"
+
+#: ../nova/auth/ldapdriver.py:205
+#, python-format
+msgid "LDAP object for %s doesn't exist"
+msgstr "L'objet LDAP pour %s n'existe pas"
+
+#: ../nova/auth/ldapdriver.py:348
+#, python-format
+msgid "User %s doesn't exist"
+msgstr "L'utilisateur %s n'existe pas"
+
+#: ../nova/auth/ldapdriver.py:472
+#, python-format
+msgid "Group can't be created because group %s already exists"
+msgstr "Un groupe nommé %s existe déjà"
+
+#: ../nova/auth/ldapdriver.py:478
+#, python-format
+msgid "Group can't be created because user %s doesn't exist"
+msgstr "Le groupe n'a pu être créé car l'utilisateur %s n'existe pas"
+
+#: ../nova/auth/ldapdriver.py:495
+#, python-format
+msgid "User %s can't be searched in group because the user doesn't exist"
+msgstr ""
+"L'utilisateur %s ne peut pas être trouvé dans le groupe car cet utilisateur "
+"n'existe pas"
+
+#: ../nova/auth/ldapdriver.py:507
+#, python-format
+msgid "User %s can't be added to the group because the user doesn't exist"
+msgstr ""
+"L'utilisateur %s ne peut être ajouté au groupe car cet utilisateur n'existe "
+"pas"
+
+#: ../nova/auth/ldapdriver.py:510 ../nova/auth/ldapdriver.py:521
+#, python-format
+msgid "The group at dn %s doesn't exist"
+msgstr "Le group ayant pour dn %s n'existe pas"
+
+#: ../nova/auth/ldapdriver.py:513
+#, python-format
+msgid "User %(uid)s is already a member of the group %(group_dn)s"
+msgstr "L'utilisateur %(uid)s est déjà membre du groupe %(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 ""
+"L'utilisateur %s ne peut être supprimé du groupe car cet utilisateur "
+"n'existe pas"
+
+#: ../nova/auth/ldapdriver.py:528
+#, python-format
+msgid "User %s is not a member of the group"
+msgstr "L'utilisateur %s n'est pas membre du groupe"
+
+#: ../nova/auth/ldapdriver.py:542
+#, python-format
+msgid ""
+"Attempted to remove the last member of a group. Deleting the group at %s "
+"instead."
+msgstr ""
+"Tentative de suppression du dernier membre d'un groupe. Essayez plutôt de "
+"supprimer le group sur %s."
+
+#: ../nova/auth/ldapdriver.py:549
+#, python-format
+msgid "User %s can't be removed from all because the user doesn't exist"
+msgstr ""
+"L'utilisateur %s ne peut être supprimé partout car l'utilisateur n'existe pas"
+
+#: ../nova/auth/ldapdriver.py:564
+#, python-format
+msgid "Group at dn %s doesn't exist"
+msgstr "Le groupe ayant pour dn %s n'existe pas"
+
+#: ../nova/virt/xenapi/network_utils.py:40
+#, python-format
+msgid "Found non-unique network for bridge %s"
+msgstr "Réseau non unique trouvé pour le bridge %s"
+
+#: ../nova/virt/xenapi/network_utils.py:43
+#, python-format
+msgid "Found no network for bridge %s"
+msgstr "Aucun réseau trouvé pour le bridge %s"
+
+#: ../nova/api/ec2/admin.py:97
+#, python-format
+msgid "Creating new user: %s"
+msgstr "Création d'un nouvel utilisateur : %s"
+
+#: ../nova/api/ec2/admin.py:105
+#, python-format
+msgid "Deleting user: %s"
+msgstr "Suppression de l'utilisateur : %s"
+
+#: ../nova/api/ec2/admin.py:127
+#, python-format
+msgid "Adding role %(role)s to user %(user)s for project %(project)s"
+msgstr ""
+"Ajout du rôle %(role)s à l'utilisateur %(user)s pour le projet %(project)s"
+
+#: ../nova/api/ec2/admin.py:131
+#, python-format
+msgid "Adding sitewide role %(role)s to user %(user)s"
+msgstr "Ajout du rôle global %(role)s à l'utilisateur %(user)s"
+
+#: ../nova/api/ec2/admin.py:137
+#, python-format
+msgid "Removing role %(role)s from user %(user)s for project %(project)s"
+msgstr ""
+"Suppresion du rôle %(role)s de l'utilisateur %(user)s pour le projet "
+"%(project)s"
+
+#: ../nova/api/ec2/admin.py:141
+#, python-format
+msgid "Removing sitewide role %(role)s from user %(user)s"
+msgstr "Suppression du rôle global %(role)s pour l'utilisateur %(user)s"
+
+#: ../nova/api/ec2/admin.py:146 ../nova/api/ec2/admin.py:223
+msgid "operation must be add or remove"
+msgstr "L'opération doit être ajout ou suppression"
+
+#: ../nova/api/ec2/admin.py:159
+#, python-format
+msgid "Getting x509 for user: %(name)s on project: %(project)s"
+msgstr ""
+"Récupération de x509 pour l'utilisateur : %(name)s sur le projet : "
+"%(project)s"
+
+#: ../nova/api/ec2/admin.py:177
+#, python-format
+msgid "Create project %(name)s managed by %(manager_user)s"
+msgstr "Création du projet %(name)s géré par %(manager_user)s"
+
+#: ../nova/api/ec2/admin.py:190
+#, python-format
+msgid "Modify project: %(name)s managed by %(manager_user)s"
+msgstr "Modification du projet: %(name)s géré par %(manager_user)s"
+
+#: ../nova/api/ec2/admin.py:200
+#, python-format
+msgid "Delete project: %s"
+msgstr "Supprimer le projet : %s"
+
+#: ../nova/api/ec2/admin.py:214
+#, python-format
+msgid "Adding user %(user)s to project %(project)s"
+msgstr "Ajout de l'utilisateur %(user)s au projet %(project)s"
+
+#: ../nova/api/ec2/admin.py:218
+#, python-format
+msgid "Removing user %(user)s from project %(project)s"
+msgstr "Suppression de l'utilisateur %(user)s du projet %(project)s"
diff --git a/po/it.po b/po/it.po
index 1beb116a3..60c3a388a 100644
--- a/po/it.po
+++ b/po/it.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-03-19 06:19+0000\n"
-"X-Generator: Launchpad (build 12559)\n"
+"X-Launchpad-Export-Date: 2011-07-23 05:12+0000\n"
+"X-Generator: Launchpad (build 13405)\n"
#: ../nova/scheduler/chance.py:37 ../nova/scheduler/zone.py:55
#: ../nova/scheduler/simple.py:75 ../nova/scheduler/simple.py:110
diff --git a/po/ja.po b/po/ja.po
index 87065d778..09d17af3b 100644
--- a/po/ja.po
+++ b/po/ja.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-03-29 07:27+0000\n"
-"Last-Translator: Koji Iida <Unknown>\n"
+"PO-Revision-Date: 2011-05-10 10:26+0000\n"
+"Last-Translator: Akira YOSHIYAMA <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-03-30 05:22+0000\n"
-"X-Generator: Launchpad (build 12559)\n"
+"X-Launchpad-Export-Date: 2011-07-23 05:12+0000\n"
+"X-Generator: Launchpad (build 13405)\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 "é©åˆ‡ãªãƒ›ã‚¹ãƒˆãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。"
+msgstr "ホストãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“"
#: ../nova/exception.py:33
msgid "Unexpected error while running command."
@@ -36,10 +36,15 @@ msgid ""
"Stdout: %(stdout)r\n"
"Stderr: %(stderr)r"
msgstr ""
+"%(description)s\n"
+"コマンド: %(cmd)s\n"
+"終了コード: %(exit_code)s\n"
+"標準出力: %(stdout)r\n"
+"標準エラー出力: %(stderr)r"
#: ../nova/exception.py:107
msgid "DB exception wrapped"
-msgstr ""
+msgstr "DB 例外ãŒãƒ©ãƒƒãƒ—(wrapped)ã•れã¾ã—ãŸ"
#. exc_type, exc_value, exc_traceback = sys.exc_info()
#: ../nova/exception.py:120
@@ -49,32 +54,32 @@ msgstr "キャッãƒã•れãªã‹ã£ãŸä¾‹å¤–"
#: ../nova/volume/api.py:45
#, python-format
msgid "Quota exceeeded for %(pid)s, tried to create %(size)sG volume"
-msgstr "サイズ %(size)sG ã®ãƒœãƒªãƒ¥ãƒ¼ãƒ ã®ä½œæˆã‚’行ãŠã†ã¨ã—ã¾ã—ãŸãŒã€%(pid)sã®ã‚¯ã‚ªãƒ¼ã‚¿ã‚’è¶…ãˆã¦ã„ã¾ã™ã€‚"
+msgstr "サイズ %(size)s GB ã®ãƒœãƒªãƒ¥ãƒ¼ãƒ ä½œæˆã‚’行ãŠã†ã¨ã—ã¾ã—ãŸãŒã€%(pid)s ã®ã‚µã‚¤ã‚ºåˆ¶é™ã‚’è¶…ãˆã¦ã„ã¾ã™ã€‚"
#: ../nova/volume/api.py:47
#, python-format
msgid "Volume quota exceeded. You cannot create a volume of size %sG"
-msgstr "ボリュームã®ã‚¯ã‚ªãƒ¼ã‚¿ã‚’è¶…ãˆã¦ã„ã¾ã™ã€‚%sã®å¤§ãã•ã®ãƒœãƒªãƒ¥ãƒ¼ãƒ ã¯ä½œæˆã§ãã¾ã›ã‚“。"
+msgstr "ボリュームã®ã‚µã‚¤ã‚ºåˆ¶é™ã‚’è¶…ãˆã¦ã„ã¾ã™ã€‚サイズ %s GB ã®ãƒœãƒªãƒ¥ãƒ¼ãƒ ã¯ä½œæˆã§ãã¾ã›ã‚“。"
#: ../nova/volume/api.py:71 ../nova/volume/api.py:96
msgid "Volume status must be available"
-msgstr "ボリュームã®ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹(status)㌠available ã§ãªã‘れã°ãªã‚Šã¾ã›ã‚“。"
+msgstr "ボリュームã®ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹(status)㯠available ã§ãªã‘れã°ãªã‚Šã¾ã›ã‚“。"
#: ../nova/volume/api.py:98
msgid "Volume is already attached"
-msgstr "ãƒœãƒªãƒ¥ãƒ¼ãƒ ã¯æ—¢ã«ã‚¢ã‚¿ãƒƒãƒã•れã¦ã„ã¾ã™(attached)。"
+msgstr "ãƒœãƒªãƒ¥ãƒ¼ãƒ ã¯æ—¢ã«æŽ¥ç¶š(attached)ã•れã¦ã„ã¾ã™ã€‚"
#: ../nova/volume/api.py:104
msgid "Volume is already detached"
-msgstr "ãƒœãƒªãƒ¥ãƒ¼ãƒ ã¯æ—¢ã«ãƒ‡ã‚¿ãƒƒãƒã•れã¦ã„ã¾ã™(detached)。"
+msgstr "ãƒœãƒªãƒ¥ãƒ¼ãƒ ã¯æ—¢ã«åˆ‡æ–­(detached)ã•れã¦ã„ã¾ã™ã€‚"
#: ../nova/api/openstack/servers.py:72
msgid "Failed to read private ip"
-msgstr ""
+msgstr "プライベート IP アドレスã®ãƒªãƒ¼ãƒ‰ã«å¤±æ•—ã—ã¾ã—ãŸ"
#: ../nova/api/openstack/servers.py:79
msgid "Failed to read public ip(s)"
-msgstr ""
+msgstr "パブリック IP アドレスã®ãƒªãƒ¼ãƒ‰ã«å¤±æ•—ã—ã¾ã—ãŸ"
#: ../nova/api/openstack/servers.py:152
#, python-format
@@ -83,7 +88,7 @@ msgstr "イメージ %(_image_id)s ã«å¯¾ã™ã‚‹ãƒ—ロパティ %(param)s ãŒè¦‹ã
#: ../nova/api/openstack/servers.py:168
msgid "No keypairs defined"
-msgstr "キーペアãŒå®šç¾©ã•れã¦ã„ã¾ã›ã‚“。"
+msgstr "キーペアãŒå®šç¾©ã•れã¦ã„ã¾ã›ã‚“"
#: ../nova/api/openstack/servers.py:238
#, python-format
@@ -103,7 +108,7 @@ msgstr "例外: Compute.api::get_lock %s"
#: ../nova/api/openstack/servers.py:281
#, python-format
msgid "Compute.api::reset_network %s"
-msgstr ""
+msgstr "例外: Compute.api::reset_network %s"
#: ../nova/api/openstack/servers.py:292
#, python-format
@@ -150,7 +155,7 @@ msgstr "FLAGSã®ä¸€è¦§:"
#: ../nova/twistd.py:266
#, python-format
msgid "Starting %s"
-msgstr "%s ã‚’é–‹å§‹ã—ã¾ã™ã€‚"
+msgstr "%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
@@ -163,33 +168,33 @@ msgstr "インスタンス %s ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。"
#: ../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
msgid "Unable to create VDI on SR %(sr_ref)s for instance %(instance_name)s"
-msgstr ""
+msgstr "インスタンス %(instance_name)s 用ã®SR %(sr_ref)s ã«ãŠã‘ã‚‹ VDI を作æˆã§ãã¾ã›ã‚“"
#: ../nova/virt/xenapi/volumeops.py:80
#, python-format
msgid "Unable to use SR %(sr_ref)s for instance %(instance_name)s"
-msgstr ""
+msgstr "インスタンス %(instance_name)s 用ã®SR %(sr_ref)s ãŒä½¿ç”¨ã§ãã¾ã›ã‚“"
#: ../nova/virt/xenapi/volumeops.py:91
#, python-format
msgid "Unable to attach volume to instance %s"
-msgstr "インスタンス %s ã«ãƒœãƒªãƒ¥ãƒ¼ãƒ ã‚’アタッãƒã§ãã¾ã›ã‚“。"
+msgstr "インスタンス %s ã«ãƒœãƒªãƒ¥ãƒ¼ãƒ ã‚’接続(attach)ã§ãã¾ã›ã‚“。"
#: ../nova/virt/xenapi/volumeops.py:93
#, python-format
msgid "Mountpoint %(mountpoint)s attached to instance %(instance_name)s"
-msgstr "インスタンス %(instance_name)s ã«ãƒžã‚¦ãƒ³ãƒˆãƒã‚¤ãƒ³ãƒˆ %(mountpoint)s をアタッãƒã—ã¾ã—ãŸã€‚"
+msgstr "インスタンス %(instance_name)s ã«ãƒžã‚¦ãƒ³ãƒˆãƒã‚¤ãƒ³ãƒˆ %(mountpoint)s を接続(attach)ã—ã¾ã—ãŸ"
#. Detach VBD from VM
#: ../nova/virt/xenapi/volumeops.py:104
#, python-format
msgid "Detach_volume: %(instance_name)s, %(mountpoint)s"
-msgstr ""
+msgstr "ボリューム切断: %(instance_name)s, %(mountpoint)s"
#: ../nova/virt/xenapi/volumeops.py:112
#, python-format
@@ -199,17 +204,17 @@ msgstr "ボリューム %s ã®å­˜åœ¨ãŒç¢ºèªã§ãã¾ã›ã‚“。"
#: ../nova/virt/xenapi/volumeops.py:120
#, python-format
msgid "Unable to detach volume %s"
-msgstr "ボリューム %s ã®ãƒ‡ã‚¿ãƒƒãƒãŒã§ãã¾ã›ã‚“。"
+msgstr "ボリューム %s を切断(detach)ã§ãã¾ã›ã‚“"
#: ../nova/virt/xenapi/volumeops.py:127
#, python-format
msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
-msgstr "インスタンス %(instance_name)s ã‹ã‚‰ãƒžã‚¦ãƒ³ãƒˆãƒã‚¤ãƒ³ãƒˆ %(mountpoint)s をデタッãƒã—ã¾ã—ãŸã€‚"
+msgstr "インスタンス %(instance_name)s ã‹ã‚‰ãƒžã‚¦ãƒ³ãƒˆãƒã‚¤ãƒ³ãƒˆ %(mountpoint)s を切断(detach)ã—ã¾ã—ãŸ"
#: ../nova/compute/instance_types.py:41
#, python-format
msgid "Unknown instance type: %s"
-msgstr "%s ã¯æœªçŸ¥ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã‚¿ã‚¤ãƒ—ã§ã™ã€‚"
+msgstr "未知ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã‚¿ã‚¤ãƒ—: %s"
#: ../nova/crypto.py:46
msgid "Filename of root CA"
@@ -258,7 +263,7 @@ msgstr "Flags ã®ãƒ‘ス: %s"
#: ../nova/scheduler/manager.py:69
#, python-format
msgid "Casting to %(topic)s %(host)s for %(method)s"
-msgstr ""
+msgstr "%(method)s 用㫠%(topic)s %(host)s を割り当ã¦ä¸­"
#: ../nova/compute/manager.py:78
#, python-format
@@ -269,7 +274,7 @@ msgstr "check_instance_lock: decorating: |%s|"
#, python-format
msgid ""
"check_instance_lock: arguments: |%(self)s| |%(context)s| |%(instance_id)s|"
-msgstr ""
+msgstr "check_instance_lock: 引数: |%(self)s| |%(context)s| |%(instance_id)s|"
#: ../nova/compute/manager.py:84
#, python-format
@@ -298,23 +303,23 @@ msgstr "ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã¯æ—¢ã«ç”Ÿæˆã•れã¦ã„ã¾ã™ã€‚"
#: ../nova/compute/manager.py:180
#, python-format
msgid "instance %s: starting..."
-msgstr "インスタンス %s ã‚’é–‹å§‹ã—ã¾ã™ã€‚"
+msgstr "インスタンス %s: 起動中…"
#. pylint: disable=W0702
#: ../nova/compute/manager.py:219
#, python-format
msgid "instance %s: Failed to spawn"
-msgstr "インスタンス %s ã®èµ·å‹•ã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
+msgstr "インスタンス %s: èµ·å‹•ã«å¤±æ•—ã—ã¾ã—ãŸ"
#: ../nova/compute/manager.py:233 ../nova/tests/test_cloud.py:286
#, python-format
msgid "Terminating instance %s"
-msgstr "Terminating instance: インスタンス %s を終了ã—ã¾ã™ã€‚"
+msgstr "インスタンス %s ã‚’åœæ­¢ä¸­"
#: ../nova/compute/manager.py:255
#, python-format
msgid "Deallocating address %s"
-msgstr "アドレス %s ã®å‰²å½“を解除(deallocate)ã—ã¾ã™ã€‚"
+msgstr "アドレス %s ã®å‰²å½“を解除中(deallocating)"
#: ../nova/compute/manager.py:268
#, python-format
@@ -338,7 +343,7 @@ msgstr ""
#: ../nova/compute/manager.py:311
#, python-format
msgid "instance %s: snapshotting"
-msgstr "snapshotting: インスタンス %s ã®ã‚¹ãƒŠãƒƒãƒ—ショットをå–å¾—ã—ã¾ã™ã€‚"
+msgstr "snapshotting: インスタンス %s ã®ã‚¹ãƒŠãƒƒãƒ—ショットをå–得中"
#: ../nova/compute/manager.py:316
#, python-format
@@ -361,7 +366,7 @@ msgstr ""
#: ../nova/compute/manager.py:335
#, python-format
msgid "instance %s: setting admin password"
-msgstr "インスタンス %s: admin password をセットã—ã¾ã™"
+msgstr "インスタンス %s: 管ç†è€…用パスワードをセット中"
#: ../nova/compute/manager.py:353
#, python-format
@@ -375,7 +380,7 @@ msgstr ""
#: ../nova/compute/manager.py:362
#, python-format
msgid "instance %(nm)s: injecting file to %(plain_path)s"
-msgstr "インスタンス %(nm)s: ファイルを %(plain_path)s ã«ã‚¤ãƒ³ã‚¸ã‚§ã‚¯ãƒˆã—ã¾ã™"
+msgstr "インスタンス %(nm)s: ファイルを %(plain_path)s ã«åŸ‹ã‚è¾¼ã¿ä¸­"
#: ../nova/compute/manager.py:372
#, python-format
@@ -447,7 +452,7 @@ msgstr "インスタンス %s: ajax consoleを接続ã—ã¾ã™"
msgid ""
"instance %(instance_id)s: attaching volume %(volume_id)s to %(mountpoint)s"
msgstr ""
-"インスタンス %(instance_id)s: ボリューム %(volume_id)s ã‚’ %(mountpoint)s ã«ã‚¢ã‚¿ãƒƒãƒã—ã¾ã™"
+"インスタンス %(instance_id)s: ボリューム %(volume_id)s ã‚’ %(mountpoint)s ã«æŽ¥ç¶šä¸­(attaching)"
#. pylint: disable=W0702
#. NOTE(vish): The inline callback eats the exception info so we
@@ -549,7 +554,7 @@ msgstr "ボリューム %s ã®å‰Šé™¤ã«æˆåŠŸã—ã¾ã—ãŸã€‚"
#: ../nova/virt/xenapi/fake.py:74
#, python-format
msgid "%(text)s: _db_content => %(content)s"
-msgstr ""
+msgstr "%(text)s: _db_content => %(content)s"
#: ../nova/virt/xenapi/fake.py:304 ../nova/virt/xenapi/fake.py:404
#: ../nova/virt/xenapi/fake.py:422 ../nova/virt/xenapi/fake.py:478
@@ -616,12 +621,12 @@ msgstr "Pid %d ã¯ç„¡åйã§ã™ã€‚dnsmasqã‚’å†å®Ÿè¡Œã—ã¾ã™ã€‚"
#: ../nova/network/linux_net.py:358
#, python-format
msgid "killing radvd threw %s"
-msgstr ""
+msgstr "radvd åœæ­¢ãŒ %s 例外を発行ã—ã¾ã—ãŸ"
#: ../nova/network/linux_net.py:360
#, python-format
msgid "Pid %d is stale, relaunching radvd"
-msgstr ""
+msgstr "Pid %d ãŒã‚¹ãƒˆãƒ¼ãƒ«ã—ã¦ã„ã‚‹ã®ã§ radvd ã‚’å†å®Ÿè¡Œã—ã¦ã„ã¾ã™â€¦"
#. pylint: disable=W0703
#: ../nova/network/linux_net.py:449
@@ -677,7 +682,7 @@ msgstr "リンクローカルアドレスãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“: %s"
#: ../nova/utils.py:265
#, python-format
msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
-msgstr ""
+msgstr "%(interface)s ã®ãƒ­ãƒ¼ã‚«ãƒ«IPアドレスã®ãƒªãƒ³ã‚¯ãŒå–å¾—ã§ãã¾ã›ã‚“:%(ex)s"
#: ../nova/utils.py:363
#, python-format
@@ -692,7 +697,7 @@ msgstr "ãƒãƒƒã‚¯ã‚¨ãƒ³ãƒ‰ã¯ %s ã§ã™ã€‚"
#: ../nova/fakerabbit.py:49
#, python-format
msgid "(%(nm)s) publish (key: %(routing_key)s) %(message)s"
-msgstr ""
+msgstr "(%(nm)s) 公開 (キー: %(routing_key)s) %(message)s"
#: ../nova/fakerabbit.py:54
#, python-format
@@ -712,12 +717,12 @@ msgstr "exchange %s ã®å®£è¨€"
#: ../nova/fakerabbit.py:96
#, python-format
msgid "Binding %(queue)s to %(exchange)s with key %(routing_key)s"
-msgstr ""
+msgstr "キー %(routing_key)s 付ãã§ %(exchange)s ã« %(queue)s ã‚’ãƒã‚¤ãƒ³ãƒ‰ã—ã¦ã„ã¾ã™"
#: ../nova/fakerabbit.py:121
#, python-format
msgid "Getting from %(queue)s: %(message)s"
-msgstr ""
+msgstr "%(queue)s ã‹ã‚‰å–å¾—ã—ã¦ã„ã¾ã™: %(message)s"
#: ../nova/virt/xenapi/vm_utils.py:135 ../nova/virt/hyperv.py:171
#, python-format
@@ -727,17 +732,17 @@ msgstr "VM %s を作æˆã—ã¾ã™ã€‚"
#: ../nova/virt/xenapi/vm_utils.py:138
#, python-format
msgid "Created VM %(instance_name)s as %(vm_ref)s."
-msgstr ""
+msgstr "%(vm_ref)s ã¨ã—㦠VM %(instance_name)s を作æˆã—ã¦ã„ã¾ã™"
#: ../nova/virt/xenapi/vm_utils.py:168
#, python-format
msgid "Creating VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
-msgstr ""
+msgstr "VM %(vm_ref)s, VDI %(vdi_ref)s 用 VBD を作æˆã—ã¦ã„ã¾ã™â€¦ "
#: ../nova/virt/xenapi/vm_utils.py:171
#, python-format
msgid "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
-msgstr ""
+msgstr "VM %(vm_ref)s, VDI %(vdi_ref)s 用仮想ブロックデãƒã‚¤ã‚¹(VBD) %(vbd_ref)s を作æˆã—ã¾ã—ãŸã€‚"
#: ../nova/virt/xenapi/vm_utils.py:187
#, python-format
@@ -757,12 +762,12 @@ msgstr "VBD %s ã®å‰Šé™¤ã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
#: ../nova/virt/xenapi/vm_utils.py:224
#, python-format
msgid "Creating VIF for VM %(vm_ref)s, network %(network_ref)s."
-msgstr ""
+msgstr "VM %(vm_ref)s, network %(network_ref)s 用仮想インターフェース(VIF)を作æˆã—ã¦ã„ã¾ã™ã€‚"
#: ../nova/virt/xenapi/vm_utils.py:227
#, python-format
msgid "Created VIF %(vif_ref)s for VM %(vm_ref)s, network %(network_ref)s."
-msgstr ""
+msgstr "VM %(vm_ref)s, network %(network_ref)s 用 VIF %(vif_ref)s を作æˆã—ã¾ã—ãŸã€‚"
#: ../nova/virt/xenapi/vm_utils.py:246
#, python-format
@@ -770,50 +775,52 @@ msgid ""
"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s) on "
"%(sr_ref)s."
msgstr ""
+"%(sr_ref)s 上㫠VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, "
+"%(read_only)s) を作æˆã—ã¾ã—ãŸã€‚"
#. TODO(sirp): Add quiesce and VSS locking support when Windows support
#. is added
#: ../nova/virt/xenapi/vm_utils.py:258
#, python-format
msgid "Snapshotting VM %(vm_ref)s with label '%(label)s'..."
-msgstr ""
+msgstr "ラベル '%(label)s' 付ã VM %(vm_ref)s ã®ã‚¹ãƒŠãƒƒãƒ—ショットを作æˆã—ã¦ã„ã¾ã™â€¦"
#: ../nova/virt/xenapi/vm_utils.py:272
#, python-format
msgid "Created snapshot %(template_vm_ref)s from VM %(vm_ref)s."
-msgstr ""
+msgstr "VM %(vm_ref)s ã‹ã‚‰ã‚¹ãƒŠãƒƒãƒ—ショット %(template_vm_ref)s を作æˆã—ã¾ã—ãŸã€‚"
#: ../nova/virt/xenapi/vm_utils.py:286
#, python-format
msgid "Asking xapi to upload %(vdi_uuids)s as ID %(image_id)s"
-msgstr ""
+msgstr "ID %(image_id)s ã¨ã—㦠%(vdi_uuids)s ã®ã‚¢ãƒƒãƒ—ロードã®ç‚ºã« xapi ã‚’å•ã„åˆã‚ã›ã—ã¦ã„ã¾ã™"
#: ../nova/virt/xenapi/vm_utils.py:327
#, python-format
msgid "Size for image %(image)s:%(virtual_size)d"
-msgstr ""
+msgstr "イメージ %(image)s ã®ã‚µã‚¤ã‚º:%(virtual_size)d"
#: ../nova/virt/xenapi/vm_utils.py:332
#, python-format
msgid "Glance image %s"
-msgstr ""
+msgstr "Glance イメージ %s"
#. we need to invoke a plugin for copying VDI's
#. content into proper path
#: ../nova/virt/xenapi/vm_utils.py:342
#, python-format
msgid "Copying VDI %s to /boot/guest on dom0"
-msgstr ""
+msgstr "ドメイン0 上㮠/boot/guest 㫠VDI %s をコピー中"
#: ../nova/virt/xenapi/vm_utils.py:352
#, python-format
msgid "Kernel/Ramdisk VDI %s destroyed"
-msgstr ""
+msgstr "カーãƒãƒ«/RAMディスク VDI %s ãŒå‰Šé™¤ã•れã¾ã—ãŸ"
#: ../nova/virt/xenapi/vm_utils.py:361
#, python-format
msgid "Asking xapi to fetch %(url)s as %(access)s"
-msgstr ""
+msgstr "%(access)s ã¨ã—㦠%(url)s å–å¾—ã®ç‚ºã« xapi ã‚’å•ã„åˆã‚ã›ã—ã¦ã„ã¾ã™"
#: ../nova/virt/xenapi/vm_utils.py:386 ../nova/virt/xenapi/vm_utils.py:402
#, python-format
@@ -823,12 +830,12 @@ msgstr "PV kernelã®vdi %s ã‚’å–å¾—ã—ã¾ã™ã€‚"
#: ../nova/virt/xenapi/vm_utils.py:397
#, python-format
msgid "PV Kernel in VDI:%s"
-msgstr ""
+msgstr "VDI 中㮠PV カーãƒãƒ«:%s"
#: ../nova/virt/xenapi/vm_utils.py:405
#, python-format
msgid "Running pygrub against %s"
-msgstr ""
+msgstr "%s ã«å¯¾ã—㦠pygrub を実行ã—ã¦ã„ã¾ã™"
#: ../nova/virt/xenapi/vm_utils.py:411
#, python-format
@@ -838,6 +845,8 @@ msgstr "Xen Kernel %s ãŒè¦‹ã¤ã‹ã‚Šã¾ã—ãŸã€‚"
#: ../nova/virt/xenapi/vm_utils.py:413
msgid "No Xen kernel found. Booting HVM."
msgstr ""
+"No Xen kernel found. Booting HVM.\r\n"
+"Xen 用カーãƒãƒ«ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。完全仮想化モード(HVM)ã§èµ·å‹•ã—ã¦ã„ã¾ã™ã€‚"
#: ../nova/virt/xenapi/vm_utils.py:425 ../nova/virt/hyperv.py:431
#, python-format
@@ -862,7 +871,7 @@ 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 "VHD %(vdi_uuid)s ã®è¦ªã¯ %(parent_ref)s ã§ã™"
#: ../nova/virt/xenapi/vm_utils.py:542
#, python-format
@@ -873,14 +882,14 @@ msgstr "SR %s ã‚’å†ã‚¹ã‚­ãƒ£ãƒ³ã—ã¾ã™ã€‚"
#, python-format
msgid ""
"VHD coalesce attempts exceeded (%(counter)d > %(max_attempts)d), giving up..."
-msgstr ""
+msgstr "VHD 作æˆãŒåˆ¶é™ã‚’è¶Šãˆã¾ã—ãŸ(%(counter)d > %(max_attempts)d)ã®ã§ã€ä¸­æ­¢ã—ã¦ã„ã¾ã™â€¦"
#: ../nova/virt/xenapi/vm_utils.py:574
#, python-format
msgid ""
"Parent %(parent_uuid)s doesn't match original parent "
"%(original_parent_uuid)s, waiting for coalesce..."
-msgstr ""
+msgstr "親 %(parent_uuid)s ãŒå…ƒã€…ã®è¦ª %(original_parent_uuid)s ã¨ä¸€è‡´ã—ã¾ã›ã‚“。作æˆã‚’待機ã—ã¦ã„ã¾ã™â€¦"
#: ../nova/virt/xenapi/vm_utils.py:590
#, python-format
@@ -890,96 +899,96 @@ msgstr "VM %s ã«VDIãŒå­˜åœ¨ã—ã¾ã›ã‚“。"
#: ../nova/virt/xenapi/vm_utils.py:594
#, python-format
msgid "Unexpected number of VDIs (%(num_vdis)s) found for VM %(vm_ref)s"
-msgstr ""
+msgstr "VM %(vm_ref)s 用ã«äºˆæœŸã—ãªã„æ•°ã® VDI (%(num_vdis)s) ãŒè¦‹ã¤ã‹ã‚Šã¾ã—ãŸ"
#: ../nova/virt/xenapi/vm_utils.py:653
#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:188
#, python-format
msgid "Creating VBD for VDI %s ... "
-msgstr ""
+msgstr "VDI %s 用㫠VBD を作æˆã—ã¦ã„ã¾ã™â€¦ "
#: ../nova/virt/xenapi/vm_utils.py:655
#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:190
#, python-format
msgid "Creating VBD for VDI %s done."
-msgstr ""
+msgstr "VDI %s 用 VBD ã®ä½œæˆãŒå®Œäº†ã—ã¾ã—ãŸã€‚"
#: ../nova/virt/xenapi/vm_utils.py:657
#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:192
#, python-format
msgid "Plugging VBD %s ... "
-msgstr ""
+msgstr "VBD %s を接続ã—ã¦ã„ã¾ã™â€¦ "
#: ../nova/virt/xenapi/vm_utils.py:659
#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:194
#, python-format
msgid "Plugging VBD %s done."
-msgstr ""
+msgstr "仮想ブロックデãƒã‚¤ã‚¹(VBD) %s ã®æŽ¥ç¶šãŒå®Œäº†ã—ã¾ã—ãŸã€‚"
#: ../nova/virt/xenapi/vm_utils.py:661
#, python-format
msgid "VBD %(vbd)s plugged as %(orig_dev)s"
-msgstr ""
+msgstr "%(orig_dev)s ã¨ã—ã¦ä»®æƒ³ãƒ–ロックデãƒã‚¤ã‚¹(VBD) %(vbd)s を接続ã—ã¾ã—ãŸ"
#: ../nova/virt/xenapi/vm_utils.py:664
#, python-format
msgid "VBD %(vbd)s plugged into wrong dev, remapping to %(dev)s"
-msgstr ""
+msgstr "仮想ブロックデãƒã‚¤ã‚¹(VBD) %(vbd)s ã¯ä¸æ­£ãªãƒ‡ãƒã‚¤ã‚¹ã«æŽ¥ç¶šã•れã¾ã—ãŸã®ã§ã€%(dev)s ã«å†ãƒžãƒƒãƒ”ングã—ã¦ã„ã¾ã™"
#: ../nova/virt/xenapi/vm_utils.py:668
#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:197
#, python-format
msgid "Destroying VBD for VDI %s ... "
-msgstr ""
+msgstr "VDI %s 用ã®ä»®æƒ³ãƒ–ロックデãƒã‚¤ã‚¹(VBD)を削除ã—ã¦ã„ã¾ã™â€¦ "
#: ../nova/virt/xenapi/vm_utils.py:671
#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:200
#, python-format
msgid "Destroying VBD for VDI %s done."
-msgstr ""
+msgstr "VDI %s 用ã®ä»®æƒ³ãƒ–ロックデãƒã‚¤ã‚¹(VBD)ã®å‰Šé™¤ãŒå®Œäº†ã—ã¾ã—ãŸã€‚"
#: ../nova/virt/xenapi/vm_utils.py:683
#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:211
msgid "VBD.unplug successful first time."
-msgstr ""
+msgstr "VBD.unplug ã¯ï¼‘å›žç›®ã§æˆåŠŸã—ã¾ã—ãŸã€‚"
#: ../nova/virt/xenapi/vm_utils.py:688
#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:216
msgid "VBD.unplug rejected: retrying..."
-msgstr ""
+msgstr "VBD.unplug ãŒæ‹’å¦ã•れã¾ã—ãŸ: å†è©¦è¡Œã—ã¦ã„ã¾ã™â€¦"
#: ../nova/virt/xenapi/vm_utils.py:692
#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:220
msgid "VBD.unplug successful eventually."
-msgstr ""
+msgstr "VBD.unplug ã¯æœ€çµ‚çš„ã«æˆåŠŸã—ã¾ã—ãŸã€‚"
#: ../nova/virt/xenapi/vm_utils.py:695
#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:223
#, python-format
msgid "Ignoring XenAPI.Failure in VBD.unplug: %s"
-msgstr ""
+msgstr "VBD.unplug 中㮠XenAPI.Failure を無視ã—ã¦ã„ã¾ã™: %s"
#: ../nova/virt/xenapi/vm_utils.py:704
#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:66
#, python-format
msgid "Ignoring XenAPI.Failure %s"
-msgstr ""
+msgstr "XenAPI.Failure %s を無視ã—ã¦ã„ã¾ã™"
#: ../nova/virt/xenapi/vm_utils.py:735
#, python-format
msgid ""
"Writing partition table %(primary_first)d %(primary_last)d to %(dest)s..."
-msgstr ""
+msgstr "%(dest)s ã«ãƒ‘ーティションテーブル %(primary_first)d %(primary_last)d を書ã込んã§ã„ã¾ã™â€¦"
#: ../nova/virt/xenapi/vm_utils.py:747
#, python-format
msgid "Writing partition table %s done."
-msgstr ""
+msgstr "パーティションテーブル %s ã®æ›¸ãè¾¼ã¿ãŒå®Œäº†ã—ã¾ã—ãŸã€‚"
#: ../nova/tests/test_rpc.py:89
#, python-format
msgid "Nested received %(queue)s, %(value)s"
-msgstr ""
+msgstr "Nested received %(queue)s, %(value)s"
#: ../nova/tests/test_rpc.py:95
#, python-format
@@ -1003,7 +1012,7 @@ msgstr "id %s ã®serviceãŒå­˜åœ¨ã—ã¾ã›ã‚“。"
#: ../nova/db/sqlalchemy/api.py:251
#, python-format
msgid "No service for %(host)s, %(binary)s"
-msgstr ""
+msgstr "%(host)s, %(binary)s 用ã®ã‚µãƒ¼ãƒ“スãŒã‚りã¾ã›ã‚“"
#: ../nova/db/sqlalchemy/api.py:592
msgid "No fixed ips defined"
@@ -1110,6 +1119,8 @@ msgid ""
"No console pool of type %(console_type)s for compute host %(compute_host)s "
"on proxy host %(host)s"
msgstr ""
+"コンピュータホスト %(compute_host)s 用 %(console_type)s 型コンソールプールãŒãƒ—ロキシホスト %(host)s "
+"上ã«ã‚りã¾ã›ã‚“"
#: ../nova/db/sqlalchemy/api.py:2035
#, python-format
@@ -1119,27 +1130,27 @@ msgstr "プール %(pool_id)s ã« %(instance_id)s ã®ã‚³ãƒ³ã‚½ãƒ¼ãƒ«ãŒã‚りã¾
#: ../nova/db/sqlalchemy/api.py:2057
#, python-format
msgid "on instance %s"
-msgstr ""
+msgstr "インスタンス %s 上"
#: ../nova/db/sqlalchemy/api.py:2058
#, python-format
msgid "No console with id %(console_id)s %(idesc)s"
-msgstr ""
+msgstr "ID %(console_id)s %(idesc)s ã‚’æŒã¤ã‚³ãƒ³ã‚½ãƒ¼ãƒ«ãŒã‚りã¾ã›ã‚“"
#: ../nova/db/sqlalchemy/api.py:2078 ../nova/db/sqlalchemy/api.py:2097
#, python-format
msgid "No zone with id %(zone_id)s"
-msgstr ""
+msgstr "ID %(zone_id)s ã‚’æŒã¤ã‚¾ãƒ¼ãƒ³ãŒã‚りã¾ã›ã‚“"
#: ../nova/virt/libvirt_conn.py:160
#, python-format
msgid "Checking state of %s"
-msgstr ""
+msgstr "%s ã®çŠ¶æ…‹ã‚’ç¢ºèªã—ã¦ã„ã¾ã™"
#: ../nova/virt/libvirt_conn.py:165
#, python-format
msgid "Current state of %(name)s was %(state)s."
-msgstr ""
+msgstr "%(name)s ã®ç¾åœ¨ã®çŠ¶æ…‹ã¯ %(state)s ã§ã™"
#: ../nova/virt/libvirt_conn.py:183
#, python-format
@@ -1153,12 +1164,12 @@ msgstr "libvirtã¸ã®æŽ¥ç¶šãŒåˆ‡ã‚Œã¦ã„ã¾ã™ã€‚"
#: ../nova/virt/libvirt_conn.py:258
#, python-format
msgid "instance %(instance_name)s: deleting instance files %(target)s"
-msgstr ""
+msgstr "インスタンス %(instance_name)s: インスタンスファイル群 %(target)s を削除ã—ã¦ã„ã¾ã™"
#: ../nova/virt/libvirt_conn.py:283
#, python-format
msgid "Invalid device path %s"
-msgstr ""
+msgstr "%s ã¯ä¸æ­£ãªãƒ‡ãƒã‚¤ã‚¹ãƒ‘スã§ã™"
#: ../nova/virt/libvirt_conn.py:313
#, python-format
@@ -1216,16 +1227,16 @@ msgstr "デãƒã‚¤ã‚¹ã§ã™ã€‚"
#: ../nova/virt/libvirt_conn.py:448
#, python-format
msgid "data: %(data)r, fpath: %(fpath)r"
-msgstr ""
+msgstr "データ: %(data)r, ファイルパス: %(fpath)r"
#: ../nova/virt/libvirt_conn.py:456
#, python-format
msgid "Contents of file %(fpath)s: %(contents)r"
-msgstr ""
+msgstr "ファイル %(fpath)s ã®å†…容: %(contents)r"
#: ../nova/virt/libvirt_conn.py:489
msgid "Unable to find an open port"
-msgstr ""
+msgstr "é–‹ã„ãŸãƒãƒ¼ãƒˆãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“"
#: ../nova/virt/libvirt_conn.py:563
#, python-format
@@ -1235,12 +1246,12 @@ msgstr "インスタンス %s ã®ã‚¤ãƒ¡ãƒ¼ã‚¸ã‚’生æˆã—ã¾ã™ã€‚"
#: ../nova/virt/libvirt_conn.py:646
#, python-format
msgid "instance %(inst_name)s: injecting key into image %(img_id)s"
-msgstr ""
+msgstr "インスタンス %(inst_name)s: イメージ %(img_id)s ã«éµæƒ…報を埋ã‚込んã§ã„ã¾ã™"
#: ../nova/virt/libvirt_conn.py:649
#, python-format
msgid "instance %(inst_name)s: injecting net into image %(img_id)s"
-msgstr ""
+msgstr "インスタンス %(inst_name)s: イメージ %(img_id)s ã«ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯æƒ…報を埋ã‚込んã§ã„ã¾ã™"
#. This could be a windows image, or a vmdk format disk
#: ../nova/virt/libvirt_conn.py:657
@@ -1248,7 +1259,7 @@ msgstr ""
msgid ""
"instance %(inst_name)s: ignoring error injecting data into image %(img_id)s "
"(%(e)s)"
-msgstr ""
+msgstr "インスタンス %(inst_name)s: イメージ %(img_id)s ã¸ã®ãƒ‡ãƒ¼ã‚¿åŸ‹ã‚è¾¼ã¿ã®ã‚¨ãƒ©ãƒ¼ã‚’無視ã—ã¦ã„ã¾ã™ (%(e)s)"
#. TODO(termie): cache?
#: ../nova/virt/libvirt_conn.py:665
@@ -1263,12 +1274,12 @@ msgstr "インスタンス %s: toXML メソッドを完了。"
#: ../nova/virt/libvirt_conn.py:751
msgid "diagnostics are not supported for libvirt"
-msgstr ""
+msgstr "libvirt ã§ã¯è¨ºæ–­(diagnostics)ãŒã‚µãƒãƒ¼ãƒˆã•れã¦ã„ã¾ã›ã‚“"
#: ../nova/virt/libvirt_conn.py:1225
#, python-format
msgid "Attempted to unfilter instance %s which is not filtered"
-msgstr ""
+msgstr "フィルタã•れã¦ã„ãªã„インスタンス %s ã®ãƒ•ィルタ解除を試行ã—ã¾ã—ãŸ"
#: ../nova/api/ec2/metadatarequesthandler.py:76
#, python-format
@@ -1296,7 +1307,7 @@ msgstr "ターゲット %s をアロケートã—ã¾ã—ãŸã€‚"
#: ../nova/virt/images.py:70
#, python-format
msgid "Finished retreving %(url)s -- placed in %(path)s"
-msgstr ""
+msgstr "%(url)s ã®å–得を完了ã—ã¾ã—㟠-- %(path)s ã«é…ç½®ã•れã¾ã—ãŸ"
#: ../nova/scheduler/driver.py:66
msgid "Must implement a fallback schedule"
@@ -1304,21 +1315,21 @@ msgstr "予備ã®(fallback)スケジューラを実装ã™ã‚‹å¿…è¦ãŒã‚りã¾ã
#: ../nova/console/manager.py:70
msgid "Adding console"
-msgstr ""
+msgstr "コンソールを追加ã—ã¦ã„ã¾ã™"
#: ../nova/console/manager.py:90
#, python-format
msgid "Tried to remove non-existant console %(console_id)s."
-msgstr ""
+msgstr "存在ã—ãªã„コンソール %(console_id)s を削除ã—よã†ã¨ã—ã¾ã—ãŸ"
#: ../nova/api/direct.py:149
msgid "not available"
-msgstr ""
+msgstr "利用ã§ãã¾ã›ã‚“"
#: ../nova/api/ec2/cloud.py:62
#, python-format
msgid "The key_pair %s already exists"
-msgstr ""
+msgstr "キーペア %s ã¯æ—¢ã«å­˜åœ¨ã—ã¾ã™"
#. TODO(vish): Do this with M2Crypto instead
#: ../nova/api/ec2/cloud.py:118
@@ -1352,7 +1363,7 @@ msgstr "Revoke security group ingress: ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã‚°ãƒ«ãƒ¼ãƒ—è¨±å¯ %s ã
#: ../nova/api/ec2/cloud.py:430 ../nova/api/ec2/cloud.py:459
msgid "Not enough parameters to build a valid rule."
-msgstr ""
+msgstr "有効ãªãƒ«ãƒ¼ãƒ«ã‚’作æˆã™ã‚‹ç‚ºã®å分ãªãƒ‘ラメータãŒã‚りã¾ã›ã‚“"
#: ../nova/api/ec2/cloud.py:443
msgid "No rule for the specified parameters."
@@ -1391,7 +1402,7 @@ msgstr "Create volume: %s GBã®ãƒœãƒªãƒ¥ãƒ¼ãƒ ã‚’作æˆã—ã¾ã™ã€‚"
#: ../nova/api/ec2/cloud.py:612
#, python-format
msgid "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
-msgstr ""
+msgstr "ボリューム %(volume_id)s をインスタンス %(instance_id)s ã®ãƒ‡ãƒã‚¤ã‚¹ %(device)s ã«æŽ¥ç¶š"
#: ../nova/api/ec2/cloud.py:629
#, python-format
@@ -1410,7 +1421,7 @@ msgstr "Release address: アドレス %s を開放ã—ã¾ã™ã€‚"
#: ../nova/api/ec2/cloud.py:771
#, python-format
msgid "Associate address %(public_ip)s to instance %(instance_id)s"
-msgstr ""
+msgstr "インスタンス %(instance_id)s ã«ã‚¢ãƒ‰ãƒ¬ã‚¹ %(public_ip)s を割り当ã¦"
#: ../nova/api/ec2/cloud.py:780
#, python-format
@@ -1434,7 +1445,7 @@ msgstr "De-registering image: イメージ %s を登録解除ã—ã¾ã™ã€‚"
#: ../nova/api/ec2/cloud.py:875
#, python-format
msgid "Registered image %(image_location)s with id %(image_id)s"
-msgstr ""
+msgstr "イメージ %(image_location)s ㌠ID %(image_id)s ã§ç™»éŒ²ã•れã¾ã—ãŸ"
#: ../nova/api/ec2/cloud.py:882 ../nova/api/ec2/cloud.py:900
#, python-format
@@ -1466,12 +1477,12 @@ msgstr "イメージ %s ã®å…¬é–‹è¨­å®šã‚’æ›´æ–°ã—ã¾ã™ã€‚"
#: ../bin/nova-api.py:52
#, python-format
msgid "Using paste.deploy config at: %s"
-msgstr ""
+msgstr "%s ã«ã‚ã‚‹ paste.deploy 設定を使用ã—ã¦ã„ã¾ã™"
#: ../bin/nova-api.py:57
#, python-format
msgid "No paste configuration for app: %s"
-msgstr ""
+msgstr "アプリケーション用 paste 設定ãŒã‚りã¾ã›ã‚“: %s"
#: ../bin/nova-api.py:59
#, python-format
@@ -1479,60 +1490,63 @@ msgid ""
"App Config: %(api)s\n"
"%(config)r"
msgstr ""
+"アプリケーション設定 %(api)s\n"
+"%(config)r"
#: ../bin/nova-api.py:64
#, python-format
msgid "Running %s API"
-msgstr ""
+msgstr "%s API を実行ã—ã¦ã„ã¾ã™"
#: ../bin/nova-api.py:69
#, python-format
msgid "No known API applications configured in %s."
-msgstr ""
+msgstr "%s ä¸­ã«æ—¢çŸ¥ã® API アプリケーション設定ãŒã‚りã¾ã›ã‚“。"
#: ../bin/nova-api.py:83
#, python-format
msgid "Starting nova-api node (version %s)"
-msgstr ""
+msgstr "nova-api ノードを起動ã—ã¦ã„ã¾ã™ (ãƒãƒ¼ã‚¸ãƒ§ãƒ³ %s)"
#: ../bin/nova-api.py:89
#, python-format
msgid "No paste configuration found for: %s"
-msgstr ""
+msgstr "%s 用㮠paste 設定ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“"
#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:84
#, python-format
msgid "Argument %(key)s value %(value)s is too short."
-msgstr ""
+msgstr "引数 %(key)s ã®å€¤ %(value)s ãŒçŸ­ã™ãŽã¾ã™ã€‚"
#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:89
#, python-format
msgid "Argument %(key)s value %(value)s contains invalid characters."
-msgstr ""
+msgstr "引数 %(key)s ã®å€¤ %(value)s ãŒä¸æ­£ãªæ–‡å­—ã‚’å«ã‚“ã§ã„ã¾ã™ã€‚"
#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:94
#, python-format
msgid "Argument %(key)s value %(value)s starts with a hyphen."
-msgstr ""
+msgstr "引数 %(key)s ã®å€¤ %(value)s ãŒãƒã‚¤ãƒ•ン(-)ã‹ã‚‰å§‹ã¾ã£ã¦ã„ã¾ã™ã€‚"
#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:102
#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:130
#, python-format
msgid "Argument %s is required."
-msgstr ""
+msgstr "引数 %s ãŒå¿…è¦ã§ã™ã€‚"
#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:117
#, python-format
msgid ""
"Argument %(key)s may not take value %(value)s. Valid values are ['true', "
"'false']."
-msgstr ""
+msgstr "引数 %(key)s ã¯å€¤ %(value)s ãŒè¨±å¯ã•れã¦ã„ã¾ã›ã‚“。有効ãªå€¤ã¯ ['true', 'false'] ã§ã™ã€‚"
#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:163
#, python-format
msgid ""
"Created VDI %(vdi_ref)s (%(label)s, %(size)s, %(read_only)s) on %(sr_ref)s."
msgstr ""
+"%(sr_ref)s 上㫠VDI %(vdi_ref)s (%(label)s, %(size)s, %(read_only)s) を作æˆã—ã¾ã—ãŸã€‚"
#: ../nova/virt/xenapi/vmops.py:67
#, python-format
@@ -1542,7 +1556,7 @@ msgstr "ユニークã§ã¯ãªã„name %s を作æˆã—よã†ã¨ã—ã¾ã—ãŸã€‚"
#: ../nova/virt/xenapi/vmops.py:73
#, python-format
msgid "instance %(name)s: not enough free memory"
-msgstr ""
+msgstr "インスタンス %(name)s: å分ãªç©ºãメモリãŒã‚りã¾ã›ã‚“"
#: ../nova/virt/xenapi/vmops.py:148
#, python-format
@@ -1552,17 +1566,17 @@ msgstr "VM %s ã‚’é–‹å§‹ã—ã¾ã™â€¦"
#: ../nova/virt/xenapi/vmops.py:151
#, python-format
msgid "Spawning VM %(instance_name)s created %(vm_ref)s."
-msgstr ""
+msgstr "%(vm_ref)s ã‹ã‚‰ä½œæˆã•れ㟠VM %(instance_name)s ã®å®Ÿè¡ŒãŒç¹°ã‚Šã‹ãˆã•れã¦ã„ã¾ã™ã€‚"
#: ../nova/virt/xenapi/vmops.py:162
#, python-format
msgid "Invalid value for onset_files: '%s'"
-msgstr ""
+msgstr "onset_files 用ã®ä¸æ­£ãªå€¤: '%s'"
#: ../nova/virt/xenapi/vmops.py:167
#, python-format
msgid "Injecting file path: '%s'"
-msgstr ""
+msgstr "ファイルパス '%s' を埋ã‚込んã§ã„ã¾ã™"
#: ../nova/virt/xenapi/vmops.py:180
#, python-format
@@ -1584,7 +1598,7 @@ msgstr "VM %s ã«å¯¾ã™ã‚‹ã‚¹ãƒŠãƒƒãƒ—ショットを開始ã—ã¾ã™ã€‚"
#: ../nova/virt/xenapi/vmops.py:269
#, python-format
msgid "Unable to Snapshot %(vm_ref)s: %(exc)s"
-msgstr ""
+msgstr "%(vm_ref)s ã®ã‚¹ãƒŠãƒƒãƒ—ショットãŒä½œæˆå‡ºæ¥ã¾ã›ã‚“: %(exc)s"
#: ../nova/virt/xenapi/vmops.py:280
#, python-format
@@ -1594,15 +1608,15 @@ msgstr "VM %s ã®ã‚¹ãƒŠãƒƒãƒ—ショットã¨ã‚¢ãƒƒãƒ—ロードãŒå®Œäº†ã—ã¾ã—
#: ../nova/virt/xenapi/vmops.py:356
#, python-format
msgid "VM %(vm)s already halted, skipping shutdown..."
-msgstr ""
+msgstr "VM %(vm)s ã¯æ—¢ã«åœæ­¢ã—ã¦ã„ã¾ã™ã®ã§ã€ã‚·ãƒ£ãƒƒãƒˆãƒ€ã‚¦ãƒ³ã‚’çœç•¥ã—ã¾ã™â€¦"
#: ../nova/virt/xenapi/vmops.py:389
msgid "Removing kernel/ramdisk files"
-msgstr ""
+msgstr "カーãƒãƒ«/RAMディスクファイルを削除ã—ã¦ã„ã¾ã™"
#: ../nova/virt/xenapi/vmops.py:399
msgid "kernel/ramdisk files removed"
-msgstr ""
+msgstr "カーãƒãƒ«/RAMディスクファイルãŒå‰Šé™¤ã•れã¾ã—ãŸ"
#: ../nova/virt/xenapi/vmops.py:561
#, python-format
@@ -1610,6 +1624,7 @@ msgid ""
"TIMEOUT: The call to %(method)s timed out. VM id=%(instance_id)s; "
"args=%(strargs)s"
msgstr ""
+"タイムアウト: %(method)s ã®å‘¼ã³å‡ºã—ãŒã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆã—ã¾ã—ãŸã€‚VM id=%(instance_id)s; 引数=%(strargs)s"
#: ../nova/virt/xenapi/vmops.py:564
#, python-format
@@ -1617,6 +1632,7 @@ msgid ""
"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. VM "
"id=%(instance_id)s; args=%(strargs)s"
msgstr ""
+"未実装: %(method)s ã®å‘¼ã³å‡ºã—ã¯ã‚¨ãƒ¼ã‚¸ã‚§ãƒ³ãƒˆã«å®Ÿè£…ã•れã¦ã„ã¾ã›ã‚“。VM id=%(instance_id)s; 引数=%(strargs)s"
#: ../nova/virt/xenapi/vmops.py:569
#, python-format
@@ -1624,11 +1640,12 @@ msgid ""
"The call to %(method)s returned an error: %(e)s. VM id=%(instance_id)s; "
"args=%(strargs)s"
msgstr ""
+"%(method)s 呼ã³å‡ºã—ãŒã‚¨ãƒ©ãƒ¼ã‚’è¿”ã—ã¾ã—ãŸ: %(e)s. VM id=%(instance_id)s; 引数=%(strargs)s"
#: ../nova/virt/xenapi/vmops.py:760
#, python-format
msgid "OpenSSL error: %s"
-msgstr ""
+msgstr "OpenSSL エラー: %s"
#: ../nova/tests/test_compute.py:148
#, python-format
@@ -1659,7 +1676,7 @@ msgstr "%s 用ã®VPNã‚’èµ·å‹•ã—ã¾ã™ã€‚"
#: ../nova/db/sqlalchemy/migration.py:35
msgid "python-migrate is not installed. Exiting."
-msgstr ""
+msgstr "python-migrate ãŒã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•れã¦ã„ã¾ã›ã‚“。終了ã—ã¾ã™ã€‚"
#: ../nova/image/s3.py:99
#, python-format
@@ -1676,6 +1693,7 @@ msgid ""
"Access key %(access_key)s has had %(failures)d failed authentications and "
"will be locked out for %(lock_mins)d minutes."
msgstr ""
+"アクセスキー %(access_key)s 㯠%(failures)d 回èªè¨¼ã«å¤±æ•—ã—ã¾ã—ãŸã®ã§ã€%(lock_mins)d 分間ロックã—ã¾ã™ã€‚"
#: ../nova/api/ec2/__init__.py:169 ../nova/objectstore/handler.py:140
#, python-format
@@ -1685,7 +1703,7 @@ msgstr "%s ã®èªè¨¼ã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
#: ../nova/api/ec2/__init__.py:182
#, python-format
msgid "Authenticated Request For %(uname)s:%(pname)s)"
-msgstr ""
+msgstr "%(uname)s 用ã®èªè¨¼ãƒªã‚¯ã‚¨ã‚¹ãƒˆ:%(pname)s)"
#: ../nova/api/ec2/__init__.py:207
#, python-format
@@ -1695,23 +1713,23 @@ msgstr "アクション(action): %s"
#: ../nova/api/ec2/__init__.py:209
#, python-format
msgid "arg: %(key)s\t\tval: %(value)s"
-msgstr ""
+msgstr "引数: %(key)s\t\t値: %(value)s"
#: ../nova/api/ec2/__init__.py:281
#, python-format
msgid ""
"Unauthorized request for controller=%(controller)s and action=%(action)s"
-msgstr ""
+msgstr "コントローラ=%(controller)s ã¨ã‚¢ã‚¯ã‚·ãƒ§ãƒ³=%(action)s 用ã®è¨±å¯ã•れã¦ã„ãªã„リクエスト"
#: ../nova/api/ec2/__init__.py:314
#, python-format
msgid "InstanceNotFound raised: %s"
-msgstr ""
+msgstr "InstanceNotFound ãŒç™ºè¡Œã•れã¾ã—ãŸ: %s"
#: ../nova/api/ec2/__init__.py:320
#, python-format
msgid "VolumeNotFound raised: %s"
-msgstr ""
+msgstr "VolumeNotFound ãŒç™ºè¡Œã•れã¾ã—ãŸ: %s"
#: ../nova/api/ec2/__init__.py:326
#, python-format
@@ -1778,12 +1796,12 @@ msgstr ""
#: ../nova/virt/xenapi_conn.py:311
#, python-format
msgid "Task [%(name)s] %(task)s status: success %(result)s"
-msgstr ""
+msgstr "タスク [%(name)s] %(task)s 状態: æˆåŠŸ %(result)s"
#: ../nova/virt/xenapi_conn.py:317
#, python-format
msgid "Task [%(name)s] %(task)s status: %(status)s %(error_info)s"
-msgstr ""
+msgstr "タスク [%(name)s] %(task)s 状態: %(status)s %(error_info)s"
#: ../nova/virt/xenapi_conn.py:331 ../nova/virt/xenapi_conn.py:344
#, python-format
@@ -1802,12 +1820,12 @@ msgstr "æ›´æ–°ã®æœ€ä¸­ã«äºˆæœŸã—ãªã„エラーãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚"
#: ../nova/compute/monitor.py:356
#, python-format
msgid "Cannot get blockstats for \"%(disk)s\" on \"%(iid)s\""
-msgstr ""
+msgstr "\"%(iid)s\" 上㮠\"%(disk)s\" 用ã®ãƒ–ロック統計(blockstats)ãŒå–å¾—ã§ãã¾ã›ã‚“"
#: ../nova/compute/monitor.py:379
#, python-format
msgid "Cannot get ifstats for \"%(interface)s\" on \"%(iid)s\""
-msgstr ""
+msgstr "\"%(iid)s\" 上㮠%(interface)s\" 用インターフェース統計(ifstats)ãŒå–å¾—ã§ãã¾ã›ã‚“"
#: ../nova/compute/monitor.py:414
msgid "unexpected exception getting connection"
@@ -1821,13 +1839,13 @@ msgstr "インスタンス %s ãŒè¦‹ã¤ã‹ã‚Šã¾ã—ãŸã€‚"
#: ../nova/volume/san.py:67
#, python-format
msgid "Could not find iSCSI export for volume %s"
-msgstr ""
+msgstr "ボリューム %s 用㮠iSCSI エクスãƒãƒ¼ãƒˆãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“"
#: ../nova/api/ec2/apirequest.py:100
#, python-format
msgid ""
"Unsupported API request: controller = %(controller)s, action = %(action)s"
-msgstr ""
+msgstr "未サãƒãƒ¼ãƒˆã® API リクエスト: コントローラ = %(controller)s, アクション = %(action)s"
#: ../nova/api/openstack/__init__.py:55
#, python-format
@@ -1840,33 +1858,33 @@ msgstr "管ç†ç”¨ã‚ªãƒšãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ï¼ˆadmin operation)ã‚’APIã«ç™»éŒ²ã—ã¾ã
#: ../nova/console/xvp.py:99
msgid "Rebuilding xvp conf"
-msgstr ""
+msgstr "xvp è¨­å®šã‚’å†æ§‹ç¯‰ã—ã¦ã„ã¾ã™"
#: ../nova/console/xvp.py:116
#, python-format
msgid "Re-wrote %s"
-msgstr ""
+msgstr "%s ã‚’å†åº¦æ›¸ãè¾¼ã¿ã¾ã—ãŸ"
#: ../nova/console/xvp.py:121
msgid "Stopping xvp"
-msgstr ""
+msgstr "xvp ã‚’åœæ­¢ã—ã¦ã„ã¾ã™"
#: ../nova/console/xvp.py:134
msgid "Starting xvp"
-msgstr ""
+msgstr "xvp ã‚’é–‹å§‹ã—ã¦ã„ã¾ã™"
#: ../nova/console/xvp.py:141
#, python-format
msgid "Error starting xvp: %s"
-msgstr ""
+msgstr "xvp ã®é–‹å§‹ä¸­ã«ã‚¨ãƒ©ãƒ¼: %s"
#: ../nova/console/xvp.py:144
msgid "Restarting xvp"
-msgstr ""
+msgstr "xvp ã‚’å†èµ·å‹•ã—ã¦ã„ã¾ã™"
#: ../nova/console/xvp.py:146
msgid "xvp not running..."
-msgstr ""
+msgstr "xvp ãŒå®Ÿè¡Œã•れã¦ã„ã¾ã›ã‚“…"
#: ../bin/nova-manage.py:272
msgid ""
@@ -1874,6 +1892,8 @@ msgid ""
"Please create a database using nova-manage sync db before running this "
"command."
msgstr ""
+"上記ã®ã‚¨ãƒ©ãƒ¼ã¯ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ãŒä½œæˆã•れã¦ã„ãªã„為ã«è¡¨ç¤ºã•れãŸã®ã‹ã‚‚知れã¾ã›ã‚“。\n"
+"ã“ã®ã‚³ãƒžãƒ³ãƒ‰ã‚’実行ã™ã‚‹å‰ã«ã€nova-manage db sync を使用ã—ã¦ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã‚’作æˆã—ã¦ä¸‹ã•ã„。"
#: ../bin/nova-manage.py:426
msgid ""
@@ -1883,40 +1903,47 @@ msgid ""
" nova-manage network create 10.0.0.0/8 10 64\n"
"\n"
msgstr ""
+"ã“れ以上利用å¯èƒ½ãªãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãŒã‚りã¾ã›ã‚“。ã“ã‚ŒãŒæ–°è¦ã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã§ã‚れã°ã€\n"
+"下記ã®ã‚ˆã†ãªã‚³ãƒžãƒ³ãƒ‰ã‚’実行ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™:\n"
+"\n"
+" nova-manage network create 10.0.0.0/8 10 64\n"
+"\n"
#: ../bin/nova-manage.py:431
msgid ""
"The above error may show that the certificate db has not been created.\n"
"Please create a database by running a nova-api server on this host."
msgstr ""
+"上記ã®ã‚¨ãƒ©ãƒ¼ã¯èªè¨¼ DB ãŒä½œæˆã•れã¦ã„ãªã„為ã«è¡¨ç¤ºã•れるã®ã‹ã‚‚知れã¾ã›ã‚“。\n"
+"ã“ã®ãƒ›ã‚¹ãƒˆä¸Šã§ nova-api を実行ã—ã¦ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã‚’作æˆã—ã¦ä¸‹ã•ã„。"
#: ../bin/nova-manage.py:447 ../bin/nova-manage.py:536
msgid "network"
-msgstr ""
+msgstr "ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯"
#: ../bin/nova-manage.py:448
msgid "IP address"
-msgstr ""
+msgstr "IPアドレス"
#: ../bin/nova-manage.py:449
msgid "MAC address"
-msgstr ""
+msgstr "MAC アドレス"
#: ../bin/nova-manage.py:450
msgid "hostname"
-msgstr ""
+msgstr "ホストå"
#: ../bin/nova-manage.py:451
msgid "host"
-msgstr ""
+msgstr "ホスト"
#: ../bin/nova-manage.py:537
msgid "netmask"
-msgstr ""
+msgstr "ãƒãƒƒãƒˆãƒžã‚¹ã‚¯"
#: ../bin/nova-manage.py:538
msgid "start address"
-msgstr ""
+msgstr "開始アドレス"
#: ../nova/virt/disk.py:69
#, python-format
@@ -1931,7 +1958,7 @@ msgstr "ファイルシステム %s ã®ãƒžã‚¦ãƒ³ãƒˆã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
#: ../nova/virt/disk.py:124
#, python-format
msgid "nbd device %s did not show up"
-msgstr ""
+msgstr "nbd デãƒã‚¤ã‚¹ %s ãŒå‡ºç¾ã—ã¾ã›ã‚“"
#: ../nova/virt/disk.py:128
#, python-format
@@ -1940,12 +1967,12 @@ msgstr "イメージをループãƒãƒƒã‚¯ %s ã«ã‚¢ã‚¿ãƒƒãƒã§ãã¾ã›ã‚“。"
#: ../nova/virt/disk.py:151
msgid "No free nbd devices"
-msgstr ""
+msgstr "空ãã® nbd デãƒã‚¤ã‚¹ãŒã‚りã¾ã›ã‚“"
#: ../doc/ext/nova_todo.py:46
#, python-format
msgid "%(filename)s, line %(line_info)d"
-msgstr ""
+msgstr "%(filename)s, %(line_info)d 行目"
#. FIXME(chiradeep): implement this
#: ../nova/virt/hyperv.py:118
@@ -1990,7 +2017,7 @@ msgstr "vm %s ã®vcpus を設定ã—ã¾ã™ã€‚"
#: ../nova/virt/hyperv.py:202
#, python-format
msgid "Creating disk for %(vm_name)s by attaching disk file %(vhdfile)s"
-msgstr ""
+msgstr "ディスクファイル %(vhdfile)s 接続ã«ã‚ˆã‚Šã€%(vm_name)s 用ディスクを作æˆã—ã¦ã„ã¾ã™"
#: ../nova/virt/hyperv.py:227
#, python-format
@@ -2029,7 +2056,7 @@ msgstr "ãƒãƒ¼ãƒˆ %s ã®ä½œæˆã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
#: ../nova/virt/hyperv.py:276
#, python-format
msgid "Created switch port %(vm_name)s on switch %(ext_path)s"
-msgstr ""
+msgstr "スイッム%(ext_path)s 上ã®ã‚¹ã‚¤ãƒƒãƒãƒãƒ¼ãƒˆ %(vm_name)s ãŒä½œæˆã•れã¾ã—ãŸ"
#: ../nova/virt/hyperv.py:286
#, python-format
@@ -2049,7 +2076,7 @@ msgstr "WMIジョブã«å¤±æ•—ã—ã¾ã—ãŸ: %s"
#: ../nova/virt/hyperv.py:325
#, python-format
msgid "WMI job succeeded: %(desc)s, Elapsed=%(elap)s "
-msgstr ""
+msgstr "WMI ジョブæˆåŠŸ: %(desc)s, çµŒéŽæ™‚é–“=%(elap)s "
#: ../nova/virt/hyperv.py:361
#, python-format
@@ -2064,7 +2091,7 @@ msgstr "vm %s ã®å‰Šé™¤ã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
#: ../nova/virt/hyperv.py:393
#, python-format
msgid "Del: disk %(vhdfile)s vm %(instance_name)s"
-msgstr ""
+msgstr "削除: ディスク %(vhdfile)s VM %(instance_name)s"
#: ../nova/virt/hyperv.py:415
#, python-format
@@ -2072,16 +2099,20 @@ msgid ""
"Got Info for vm %(instance_id)s: state=%(state)s, mem=%(memusage)s, "
"num_cpu=%(numprocs)s, cpu_time=%(uptime)s"
msgstr ""
+"VM %(instance_id)s 用情報å–å¾—: 状態=%(state)s, メモリ=%(memusage)s, CPUæ•°=%(numprocs)s, "
+"CPU時間=%(uptime)s"
#: ../nova/virt/hyperv.py:451
#, python-format
msgid "Successfully changed vm state of %(vm_name)s to %(req_state)s"
-msgstr ""
+msgstr "VM ã®çŠ¶æ…‹ãŒ %(vm_name)s ã‹ã‚‰ %(req_state)s ã«ç„¡äº‹å¤‰æ›´ã•れã¾ã—ãŸ"
#: ../nova/virt/hyperv.py:454
#, python-format
msgid "Failed to change vm state of %(vm_name)s to %(req_state)s"
msgstr ""
+"Failed to change vm state of \r\n"
+"%(vm_name)s ã‹ã‚‰ %(req_state)s ã¸ã®VM ã®çŠ¶æ…‹å¤‰æ›´ã«å¤±æ•—ã—ã¾ã—ãŸ"
#: ../nova/compute/api.py:71
#, python-format
@@ -2096,7 +2127,7 @@ msgstr "インスタンス %d ã«ãƒ›ã‚¹ãƒˆãŒç™»éŒ²ã•れã¦ã„ã¾ã›ã‚“。"
#: ../nova/compute/api.py:97
#, python-format
msgid "Quota exceeeded for %(pid)s, tried to run %(min_count)s instances"
-msgstr ""
+msgstr "%(pid)s 用ã®åˆ¶é™(Quota)è¶…éŽã€%(min_count)s 個ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã‚’実行ã—よã†ã¨ã—ã¾ã—ãŸ"
#: ../nova/compute/api.py:99
#, python-format
@@ -2117,11 +2148,14 @@ msgstr "%s 個ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã®èµ·å‹•ã‚’å§‹ã‚ã¾ã™â€¦"
#, python-format
msgid "Casting to scheduler for %(pid)s/%(uid)s's instance %(instance_id)s"
msgstr ""
+"Casting to scheduler for \r\n"
+"\r\n"
+"%(pid)s/%(uid)s ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ %(instance_id)s 用ã®ã‚¹ã‚±ã‚¸ãƒ¥ãƒ¼ãƒ©ã‚’割り当ã¦"
#: ../nova/compute/api.py:292
#, python-format
msgid "Going to try to terminate %s"
-msgstr ""
+msgstr "%s ã‚’åœæ­¢ã—よã†ã¨ã—ã¦ã„ã¾ã™"
#: ../nova/compute/api.py:296
#, python-format
@@ -2148,6 +2182,8 @@ msgid ""
"AMQP server on %(fl_host)s:%(fl_port)d is unreachable. Trying again in "
"%(fl_intv)d seconds."
msgstr ""
+"%(fl_host)s 上㮠AMQP サーãƒ:%(fl_port)d ãŒåˆ°é”ä¸èƒ½(unreachable)ã§ã™ã€‚%(fl_intv)d "
+"秒後ã«å†è©¦è¡Œã—ã¾ã™ã€‚"
#: ../nova/rpc.py:103
#, python-format
@@ -2207,7 +2243,7 @@ msgstr "MSG_ID㯠%s ã§ã™ã€‚"
#: ../nova/rpc.py:354
msgid "Making asynchronous cast..."
-msgstr ""
+msgstr "éžåŒæœŸã®å‰²ã‚Šå½“ã¦ã‚’作æˆã—ã¦ã„ã¾ã™â€¦"
#: ../nova/rpc.py:364
#, python-format
@@ -2241,11 +2277,11 @@ msgstr "å½ã®AOE: %s"
#: ../nova/volume/driver.py:233
msgid "Skipping ensure_export. No iscsi_target "
-msgstr ""
+msgstr "ensure_export ã‚’çœç•¥ã—ã¦ã„ã¾ã™ã€‚iscsi_target ãŒã‚りã¾ã›ã‚“。 "
#: ../nova/volume/driver.py:279 ../nova/volume/driver.py:288
msgid "Skipping remove_export. No iscsi_target "
-msgstr ""
+msgstr "remove_export ã‚’çœç•¥ã—ã¦ã„ã¾ã™ã€‚iscsi_target ãŒã‚りã¾ã›ã‚“ "
#: ../nova/volume/driver.py:347
#, python-format
@@ -2255,41 +2291,41 @@ msgstr "å½ã®ISCSI: %s"
#: ../nova/volume/driver.py:359
#, python-format
msgid "rbd has no pool %s"
-msgstr ""
+msgstr "rbd ã«ãƒ—ール %s ãŒã‚りã¾ã›ã‚“。"
#: ../nova/volume/driver.py:414
#, python-format
msgid "Sheepdog is not working: %s"
-msgstr ""
+msgstr "Sheepdog ãŒå‹•作ã—ã¦ã„ã¾ã›ã‚“: %s"
#: ../nova/volume/driver.py:416
msgid "Sheepdog is not working"
-msgstr ""
+msgstr "Sheepdog ãŒæ©Ÿèƒ½ã—ã¦ã„ã¾ã›ã‚“"
#: ../nova/wsgi.py:68
#, python-format
msgid "Starting %(arg0)s on %(host)s:%(port)s"
-msgstr ""
+msgstr "%(host)s:%(port)s 上㧠%(arg0)s ã‚’é–‹å§‹ã—ã¦ã„ã¾ã™"
#: ../nova/wsgi.py:147
msgid "You must implement __call__"
-msgstr ""
+msgstr "__call__ を実装ã—ãªã‘れã°ãªã‚Šã¾ã›ã‚“"
#: ../bin/nova-instancemonitor.py:55
msgid "Starting instance monitor"
-msgstr ""
+msgstr "インスタンスモニタを開始ã—ã¦ã„ã¾ã™"
#: ../bin/nova-dhcpbridge.py:58
msgid "leasing ip"
-msgstr ""
+msgstr "IP アドレスをリースã—ã¾ã—ãŸ"
#: ../bin/nova-dhcpbridge.py:73
msgid "Adopted old lease or got a change of mac/hostname"
-msgstr ""
+msgstr "以å‰ã®ãƒªãƒ¼ã‚¹ã‚’採用ã—ãŸã‹ã€MAC/ホストåã®å¤‰æ›´ã‚’å–å¾—ã—ã¾ã—ãŸ"
#: ../bin/nova-dhcpbridge.py:80
msgid "releasing ip"
-msgstr ""
+msgstr "IP アドレスを開放ã—ã¦ã„ã¾ã™"
#: ../bin/nova-dhcpbridge.py:123
#, python-format
@@ -2297,6 +2333,8 @@ msgid ""
"Called %(action)s for mac %(mac)s with ip %(ip)s and hostname %(hostname)s "
"on interface %(interface)s"
msgstr ""
+"インターフェース %(interface)s 上㫠IP アドレス %(ip)sã€ãƒ›ã‚¹ãƒˆå %(hostname)s ã‚’æŒã£ãŸ MAC アドレス "
+"%(mac)s 用㮠%(action)s を呼ã³å‡ºã—ã¾ã—ãŸ"
#: ../nova/virt/fake.py:239
#, python-format
@@ -2325,7 +2363,7 @@ msgstr "IP %s ãŒãƒªãƒ¼ã‚¹ã•れã¾ã—ãŸãŒé–¢é€£ä»˜ã‘られã¦ã„ã¾ã›ã‚“。
#: ../nova/network/manager.py:220
#, python-format
msgid "IP %(address)s leased to bad mac %(inst_addr)s vs %(mac)s"
-msgstr ""
+msgstr "IP アドレス %(address)s ãŒä¸æ­£ãª MAC アドレス %(inst_addr)s 対 %(mac)s ã«å‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¾ã—ãŸ"
#: ../nova/network/manager.py:228
#, python-format
@@ -2335,7 +2373,7 @@ msgstr "æ—¢ã«å‰²å½“解除ã—ã¦ã„ã‚‹IP %s ãŒãƒªãƒ¼ã‚¹ã•れã¾ã—ãŸã€‚"
#: ../nova/network/manager.py:233
#, python-format
msgid "Releasing IP %s"
-msgstr ""
+msgstr "IP アドレス %s を開放ã—ã¦ã„ã¾ã™"
#: ../nova/network/manager.py:237
#, python-format
@@ -2345,7 +2383,7 @@ msgstr "割り当ã¦ã¦ã„ãªã„IP %s ãŒé–‹æ”¾ã•れã¾ã—ãŸã€‚"
#: ../nova/network/manager.py:241
#, python-format
msgid "IP %(address)s released from bad mac %(inst_addr)s vs %(mac)s"
-msgstr ""
+msgstr "䏿­£ãª MAC アドレス %(inst_addr)s 対 %(mac)s ã‹ã‚‰ IP アドレス %(address)s ãŒé–‹æ”¾ã•れã¾ã—ãŸ"
#: ../nova/network/manager.py:244
#, python-format
@@ -2356,7 +2394,7 @@ msgstr "リースã—ã¦ã„ãªã„IP %s ãŒé–‹æ”¾ã•れã¾ã—ãŸã€‚"
msgid ""
"The sum between the number of networks and the vlan start cannot be greater "
"than 4094"
-msgstr ""
+msgstr "ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã®æ•°ã¨VLANã®é–‹å§‹ç•ªå·ã®å’Œã¯ 4094 より大ããã§ãã¾ã›ã‚“。"
#: ../nova/virt/xenapi/volume_utils.py:57
#, python-format
@@ -2366,7 +2404,7 @@ msgstr "%s ã‚’ introduce ã—ã¾ã™â€¦"
#: ../nova/virt/xenapi/volume_utils.py:74
#, python-format
msgid "Introduced %(label)s as %(sr_ref)s."
-msgstr ""
+msgstr "%(sr_ref)s ã¨ã—㦠%(label)s ã‚’å°Žå…¥ã—ã¾ã—ãŸ"
#: ../nova/virt/xenapi/volume_utils.py:78
msgid "Unable to create Storage Repository"
@@ -2385,12 +2423,12 @@ msgstr "SR %s ã‚’forgetã—ã¾ã™ã€‚ "
#: ../nova/virt/xenapi/volume_utils.py:101
#, python-format
msgid "Ignoring exception %(exc)s when getting PBDs for %(sr_ref)s"
-msgstr ""
+msgstr "%(sr_ref)s 用ã®ç‰©ç†ãƒ–ロックデãƒã‚¤ã‚¹(PBD)å–得時ã«ä¾‹å¤– %(exc)s を無視ã—ã¦ã„ã¾ã™"
#: ../nova/virt/xenapi/volume_utils.py:107
#, python-format
msgid "Ignoring exception %(exc)s when unplugging PBD %(pbd)s"
-msgstr ""
+msgstr "物ç†ãƒ–ロックデãƒã‚¤ã‚¹(PBD) %(pbd)s ã®å–ã‚Šå¤–ã—æ™‚ã«ä¾‹å¤– %(exc)s を無視ã—ã¦ã„ã¾ã™"
#: ../nova/virt/xenapi/volume_utils.py:111
#, python-format
@@ -2400,7 +2438,7 @@ msgstr "SR %s ã®forgetãŒå®Œäº†ã€‚"
#: ../nova/virt/xenapi/volume_utils.py:113
#, python-format
msgid "Ignoring exception %(exc)s when forgetting SR %(sr_ref)s"
-msgstr ""
+msgstr "SR %(sr_ref)s ã®ç™»éŒ²å‰Šé™¤æ™‚ã«ä¾‹å¤– %(exc)s を無視ã—ã¦ã„ã¾ã™"
#: ../nova/virt/xenapi/volume_utils.py:123
#, python-format
@@ -2420,7 +2458,7 @@ msgstr "SR %s ã®VDIã‚’introduceã§ãã¾ã›ã‚“。"
#: ../nova/virt/xenapi/volume_utils.py:175
#, python-format
msgid "Unable to obtain target information %(device_path)s, %(mountpoint)s"
-msgstr ""
+msgstr "ターゲット情報 %(device_path)s, %(mountpoint)s ã‚’å–å¾—ã§ãã¾ã›ã‚“"
#: ../nova/virt/xenapi/volume_utils.py:197
#, python-format
@@ -2430,17 +2468,17 @@ msgstr "マウントãƒã‚¤ãƒ³ãƒˆã‚’変æ›ã§ãã¾ã›ã‚“。 %s"
#: ../nova/objectstore/image.py:262
#, python-format
msgid "Failed to decrypt private key: %s"
-msgstr ""
+msgstr "プライベートキーã®å¾©å·ã«å¤±æ•—ã—ã¾ã—ãŸ: %s"
#: ../nova/objectstore/image.py:269
#, python-format
msgid "Failed to decrypt initialization vector: %s"
-msgstr ""
+msgstr "åˆæœŸåŒ–ベクタã®å¾©å·ã«å¤±æ•—ã—ã¾ã—ãŸ: %s"
#: ../nova/objectstore/image.py:277
#, python-format
msgid "Failed to decrypt image file %(image_file)s: %(err)s"
-msgstr ""
+msgstr "イメージファイル %(image_file)s ã®å¾©å·ã«å¤±æ•—ã—ã¾ã—ãŸ: %(err)s"
#: ../nova/objectstore/handler.py:106
#, python-format
@@ -2483,32 +2521,32 @@ msgstr "Unauthorized attempt to delete bucket: ãƒã‚±ãƒƒãƒˆ %s ã«å¯¾ã™ã‚‹å‰Šé™
#: ../nova/objectstore/handler.py:273
#, python-format
msgid "Getting object: %(bname)s / %(nm)s"
-msgstr ""
+msgstr "オブジェクトをå–å¾—ã—ã¦ã„ã¾ã™: %(bname)s / %(nm)s"
#: ../nova/objectstore/handler.py:276
#, python-format
msgid "Unauthorized attempt to get object %(nm)s from bucket %(bname)s"
-msgstr ""
+msgstr "ãƒã‚±ãƒƒãƒˆ %(bname)s ã‹ã‚‰ã®ã‚ªãƒ–ジェクト %(nm)s å–å¾—ã¯è¨±å¯ã•れã¦ã„ã¾ã›ã‚“"
#: ../nova/objectstore/handler.py:296
#, python-format
msgid "Putting object: %(bname)s / %(nm)s"
-msgstr ""
+msgstr "オブジェクトをアップロードã—ã¦ã„ã¾ã™: %(bname)s / %(nm)s"
#: ../nova/objectstore/handler.py:299
#, python-format
msgid "Unauthorized attempt to upload object %(nm)s to bucket %(bname)s"
-msgstr ""
+msgstr "ãƒã‚±ãƒƒãƒˆ %(bname)s ã¸ã®ã‚ªãƒ–ジェクト %(nm)s ã®ã‚¢ãƒƒãƒ—ロードã¯è¨±å¯ã•れã¦ã„ã¾ã›ã‚“"
#: ../nova/objectstore/handler.py:318
#, python-format
msgid "Deleting object: %(bname)s / %(nm)s"
-msgstr ""
+msgstr "オブジェクトを削除ã—ã¦ã„ã¾ã™: %(bname)s / %(nm)s"
#: ../nova/objectstore/handler.py:322
#, python-format
msgid "Unauthorized attempt to delete object %(nm)s from bucket %(bname)s"
-msgstr ""
+msgstr "ãƒã‚±ãƒƒãƒˆ %(bname)s 上ã®ã‚ªãƒ–ジェクト %(nm)s ã®å‰Šé™¤ã¯è¨±å¯ã•れã¦ã„ã¾ã›ã‚“"
#: ../nova/objectstore/handler.py:396
#, python-format
@@ -2535,7 +2573,7 @@ msgstr "Not authorized to update attributes: イメージ %s ã®ã‚¢ãƒˆãƒªãƒ“ュã
#: ../nova/objectstore/handler.py:431
#, python-format
msgid "Toggling publicity flag of image %(image_id)s %(newstatus)r"
-msgstr ""
+msgstr "イメージ %(image_id)s %(newstatus)r ã®å…¬é–‹ãƒ•ラグを切り替ãˆã¦ã„ã¾ã™"
#. other attributes imply update
#: ../nova/objectstore/handler.py:436
@@ -2576,7 +2614,7 @@ msgstr "ユーザå (%s) をプロジェクトåã¨ã—ã¦ä½¿ç”¨ã—ã¾ã™ã€‚"
#: ../nova/auth/manager.py:277
#, python-format
msgid "failed authorization: no project named %(pjid)s (user=%(uname)s)"
-msgstr ""
+msgstr "許å¯ã•れã¾ã›ã‚“: %(pjid)s ã¨ã„ã†åç§°ã®ãƒ—ロジェクトã¯ã‚りã¾ã›ã‚“ (ユーザ=%(uname)s)"
#: ../nova/auth/manager.py:279
#, python-format
@@ -2588,12 +2626,12 @@ msgstr "プロジェクト %s ã¯è¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚"
msgid ""
"Failed authorization: user %(uname)s not admin and not member of project "
"%(pjname)s"
-msgstr ""
+msgstr "許å¯ã•れã¾ã›ã‚“: ユーザ %(uname)s ã¯ç®¡ç†è€…ã§ã‚‚プロジェクト %(pjname)s ã®ãƒ¡ãƒ³ãƒã§ã‚‚ã‚りã¾ã›ã‚“。"
#: ../nova/auth/manager.py:289
#, python-format
msgid "User %(uid)s is not a member of project %(pjid)s"
-msgstr ""
+msgstr "ユーザ %(uid)s ã¯ãƒ—ロジェクト %(pjid)s ã®ãƒ¡ãƒ³ãƒã§ã¯ã‚りã¾ã›ã‚“。"
#: ../nova/auth/manager.py:298 ../nova/auth/manager.py:309
#, python-format
@@ -2621,27 +2659,27 @@ msgstr "ロール %s ã¯ã‚°ãƒ­ãƒ¼ãƒãƒ«ã§ã®ã¿ä½¿ç”¨å¯èƒ½ã§ã™ã€‚"
#: ../nova/auth/manager.py:420
#, python-format
msgid "Adding role %(role)s to user %(uid)s in project %(pid)s"
-msgstr ""
+msgstr "プロジェクト %(pid)s ã®ãƒ¦ãƒ¼ã‚¶ %(uid)s ã«ãƒ­ãƒ¼ãƒ« %(role)s を付与ã—ã¾ã™ã€‚"
#: ../nova/auth/manager.py:423
#, python-format
msgid "Adding sitewide role %(role)s to user %(uid)s"
-msgstr ""
+msgstr "サイト共通ã®ãƒ­ãƒ¼ãƒ« %(role)s をユーザ %(uid)s ã«ä»˜ä¸Žã—ã¾ã™ã€‚"
#: ../nova/auth/manager.py:448
#, python-format
msgid "Removing role %(role)s from user %(uid)s on project %(pid)s"
-msgstr ""
+msgstr "プロジェクト %(pid)s ã®ãƒ¦ãƒ¼ã‚¶ %(uid)s ã‹ã‚‰ãƒ­ãƒ¼ãƒ« %(role)s を削除ã—ã¾ã™ã€‚"
#: ../nova/auth/manager.py:451
#, python-format
msgid "Removing sitewide role %(role)s from user %(uid)s"
-msgstr ""
+msgstr "ユーザ %(uid)s ã‹ã‚‰ã‚µã‚¤ãƒˆå…±é€šã®ãƒ­ãƒ¼ãƒ« %(role)s を削除ã—ã¾ã™ã€‚"
#: ../nova/auth/manager.py:515
#, python-format
msgid "Created project %(name)s with manager %(manager_user)s"
-msgstr ""
+msgstr "プロジェクト %(name)s を管ç†è€… %(manager_user)s ã§ä½œæˆã—ã¾ã—ãŸã€‚"
#: ../nova/auth/manager.py:533
#, python-format
@@ -2651,12 +2689,12 @@ msgstr "modifying project: プロジェクト %s ã‚’æ›´æ–°ã—ã¾ã™ã€‚"
#: ../nova/auth/manager.py:545
#, python-format
msgid "Adding user %(uid)s to project %(pid)s"
-msgstr ""
+msgstr "ユーザ %(uid)s をプロジェクト %(pid)s ã«è¿½åŠ ã—ã¾ã™ã€‚"
#: ../nova/auth/manager.py:566
#, python-format
msgid "Remove user %(uid)s from project %(pid)s"
-msgstr ""
+msgstr "ユーザ %(uid)s をプロジェクト %(pid)s ã‹ã‚‰å‰Šé™¤ã—ã¾ã™ã€‚"
#: ../nova/auth/manager.py:592
#, python-format
@@ -2666,7 +2704,7 @@ msgstr "Deleting project: プロジェクト %s を削除ã—ã¾ã™ã€‚"
#: ../nova/auth/manager.py:650
#, python-format
msgid "Created user %(rvname)s (admin: %(rvadmin)r)"
-msgstr ""
+msgstr "ユーザ %(rvname)s を作æˆã—ã¾ã—ãŸã€‚(管ç†è€…: %(rvadmin)r)"
#: ../nova/auth/manager.py:659
#, python-format
@@ -2686,7 +2724,7 @@ msgstr "Secret Key change: ユーザ %s ã®ã‚·ãƒ¼ã‚¯ãƒ¬ãƒƒãƒˆã‚­ãƒ¼ã‚’æ›´æ–°ã—ã
#: ../nova/auth/manager.py:673
#, python-format
msgid "Admin status set to %(admin)r for user %(uid)s"
-msgstr ""
+msgstr "ユーザ %(uid)s ã«å¯¾ã—ã¦ç®¡ç†è€…状態㌠%(admin)r ã«è¨­å®šã•れã¾ã—ãŸã€‚"
#: ../nova/auth/manager.py:722
#, python-format
@@ -2696,7 +2734,7 @@ msgstr "プロジェクト %s ã«é–¢ã™ã‚‹vpnデータãŒã‚りã¾ã›ã‚“。"
#: ../nova/service.py:161
#, python-format
msgid "Starting %(topic)s node (version %(vcs_string)s)"
-msgstr ""
+msgstr "%(topic)s ノードを開始ã—ã¦ã„ã¾ã™ (ãƒãƒ¼ã‚¸ãƒ§ãƒ³ %(vcs_string)s)"
#: ../nova/service.py:174
msgid "Service killed that has no database entry"
@@ -2717,7 +2755,7 @@ msgstr "モデルサーãƒãŒæ¶ˆæ»…ã—ã¾ã—ãŸã€‚"
#: ../nova/auth/ldapdriver.py:174
#, python-format
msgid "LDAP user %s already exists"
-msgstr ""
+msgstr "LDAPユーザ %s ã¯ã™ã§ã«å­˜åœ¨ã—ã¾ã™ã€‚"
#: ../nova/auth/ldapdriver.py:205
#, python-format
@@ -2727,48 +2765,48 @@ msgstr "LDAPオブジェクト %s ãŒå­˜åœ¨ã—ã¾ã›ã‚“。"
#: ../nova/auth/ldapdriver.py:348
#, python-format
msgid "User %s doesn't exist"
-msgstr ""
+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
msgid "User %s can't be searched in group because the user doesn't exist"
-msgstr ""
+msgstr "ユーザ %s ã¯å­˜åœ¨ã—ãªã„ãŸã‚ã€ã‚°ãƒ«ãƒ¼ãƒ—å†…ã§æ¤œç´¢ã§ãã¾ã›ã‚“。"
#: ../nova/auth/ldapdriver.py:507
#, python-format
msgid "User %s can't be added to the group because the user doesn't exist"
-msgstr ""
+msgstr "ユーザ %s ã¯å­˜åœ¨ã—ãªã„ãŸã‚ã€å½“該グループã«è¿½åŠ ã§ãã¾ã›ã‚“。"
#: ../nova/auth/ldapdriver.py:510 ../nova/auth/ldapdriver.py:521
#, python-format
msgid "The group at dn %s doesn't exist"
-msgstr ""
+msgstr "識別å(DN) %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
@@ -2780,7 +2818,7 @@ msgstr "ã‚°ãƒ«ãƒ¼ãƒ—ã®æœ€å¾Œã®ãƒ¡ãƒ³ãƒãƒ¼ã‚’削除ã—よã†ã¨ã—ã¾ã—ãŸã€‚
#: ../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
@@ -2810,22 +2848,22 @@ msgstr "Deleting user: ユーザ %s を削除ã—ã¾ã™ã€‚"
#: ../nova/api/ec2/admin.py:127
#, python-format
msgid "Adding role %(role)s to user %(user)s for project %(project)s"
-msgstr ""
+msgstr "プロジェクト %(project)s ã®ãƒ¦ãƒ¼ã‚¶ %(user)s ã«ãƒ­ãƒ¼ãƒ« %(role)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"
@@ -2834,17 +2872,17 @@ msgstr "operation 㯠add ã¾ãŸã¯ remove ã®ä½•れã‹ã§ã‚ã‚‹å¿…è¦ãŒã‚りã
#: ../nova/api/ec2/admin.py:159
#, python-format
msgid "Getting x509 for user: %(name)s on project: %(project)s"
-msgstr ""
+msgstr "プロジェクト %(project)s ã®ãƒ¦ãƒ¼ã‚¶ %(name)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
@@ -2854,12 +2892,12 @@ msgstr "Delete project: プロジェクト %s を削除ã—ã¾ã—ãŸã€‚"
#: ../nova/api/ec2/admin.py:214
#, python-format
msgid "Adding user %(user)s to project %(project)s"
-msgstr ""
+msgstr "ユーザ %(user)s をプロジェクト %(project)s ã«è¿½åŠ ã—ã¾ã™ã€‚"
#: ../nova/api/ec2/admin.py:218
#, python-format
msgid "Removing user %(user)s from project %(project)s"
-msgstr ""
+msgstr "ユーザ %(user)s をプロジェクト %(project)s ã‹ã‚‰å‰Šé™¤ã—ã¾ã™ã€‚"
#, python-format
#~ msgid ""
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 887c32597..f067a69e0 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.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-03-25 05:22+0000\n"
-"X-Generator: Launchpad (build 12559)\n"
+"X-Launchpad-Export-Date: 2011-07-23 05:12+0000\n"
+"X-Generator: Launchpad (build 13405)\n"
#: ../nova/scheduler/chance.py:37 ../nova/scheduler/zone.py:55
#: ../nova/scheduler/simple.py:75 ../nova/scheduler/simple.py:110
diff --git a/po/ru.po b/po/ru.po
index bbfcfb19f..5d8532f2e 100644
--- a/po/ru.po
+++ b/po/ru.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-03-30 07:06+0000\n"
-"Last-Translator: Andrey Olykainen <Unknown>\n"
+"PO-Revision-Date: 2011-07-09 07:20+0000\n"
+"Last-Translator: ilya kislicyn <Unknown>\n"
"Language-Team: Russian <ru@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-03-31 05:58+0000\n"
-"X-Generator: Launchpad (build 12559)\n"
+"X-Launchpad-Export-Date: 2011-07-23 05:12+0000\n"
+"X-Generator: Launchpad (build 13405)\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 ""
+msgstr "Узлы не найдены"
#: ../nova/exception.py:33
msgid "Unexpected error while running command."
@@ -54,7 +54,7 @@ msgstr ""
#: ../nova/volume/api.py:47
#, python-format
msgid "Volume quota exceeded. You cannot create a volume of size %sG"
-msgstr ""
+msgstr "Квота тома превышена. Ð’Ñ‹ не можете Ñоздать том размером %sG"
#: ../nova/volume/api.py:71 ../nova/volume/api.py:96
msgid "Volume status must be available"
@@ -62,19 +62,19 @@ msgstr ""
#: ../nova/volume/api.py:98
msgid "Volume is already attached"
-msgstr ""
+msgstr "Том уже Ñмотирован"
#: ../nova/volume/api.py:104
msgid "Volume is already detached"
-msgstr ""
+msgstr "Том уже отмонтирован"
#: ../nova/api/openstack/servers.py:72
msgid "Failed to read private ip"
-msgstr ""
+msgstr "Ошибка Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸Ð²Ð°Ñ‚Ð½Ð¾Ð³Ð¾ IP адреÑа"
#: ../nova/api/openstack/servers.py:79
msgid "Failed to read public ip(s)"
-msgstr ""
+msgstr "Ошибка Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð¿ÑƒÐ±Ð»Ð¸Ñ‡Ð½Ñ‹Ñ… IP адреÑов"
#: ../nova/api/openstack/servers.py:152
#, python-format
@@ -83,7 +83,7 @@ msgstr ""
#: ../nova/api/openstack/servers.py:168
msgid "No keypairs defined"
-msgstr ""
+msgstr "Ðе определены ключевые пары"
#: ../nova/api/openstack/servers.py:238
#, python-format
diff --git a/po/tl.po b/po/tl.po
new file mode 100644
index 000000000..7f600e8f1
--- /dev/null
+++ b/po/tl.po
@@ -0,0 +1,2855 @@
+# Tagalog translation for nova
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the nova package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+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-17 03:24+0000\n"
+"Last-Translator: John Michael Baterna <Unknown>\n"
+"Language-Team: Tagalog <tl@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"
+
+#: ../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 ""
+
+#: ../nova/exception.py:33
+msgid "Unexpected error while running command."
+msgstr "Merong hindi-inaasahang pagkakamali habang tumatakbo ang command."
+
+#: ../nova/exception.py:36
+#, python-format
+msgid ""
+"%(description)s\n"
+"Command: %(cmd)s\n"
+"Exit code: %(exit_code)s\n"
+"Stdout: %(stdout)r\n"
+"Stderr: %(stderr)r"
+msgstr ""
+
+#: ../nova/exception.py:107
+msgid "DB exception wrapped"
+msgstr ""
+
+#. exc_type, exc_value, exc_traceback = sys.exc_info()
+#: ../nova/exception.py:120
+msgid "Uncaught exception"
+msgstr ""
+
+#: ../nova/volume/api.py:45
+#, python-format
+msgid "Quota exceeeded for %(pid)s, tried to create %(size)sG volume"
+msgstr ""
+
+#: ../nova/volume/api.py:47
+#, python-format
+msgid "Volume quota exceeded. You cannot create a volume of size %sG"
+msgstr ""
+
+#: ../nova/volume/api.py:71 ../nova/volume/api.py:96
+msgid "Volume status must be available"
+msgstr ""
+
+#: ../nova/volume/api.py:98
+msgid "Volume is already attached"
+msgstr ""
+
+#: ../nova/volume/api.py:104
+msgid "Volume is already detached"
+msgstr ""
+
+#: ../nova/api/openstack/servers.py:72
+msgid "Failed to read private ip"
+msgstr ""
+
+#: ../nova/api/openstack/servers.py:79
+msgid "Failed to read public ip(s)"
+msgstr ""
+
+#: ../nova/api/openstack/servers.py:152
+#, python-format
+msgid "%(param)s property not found for image %(_image_id)s"
+msgstr ""
+
+#: ../nova/api/openstack/servers.py:168
+msgid "No keypairs defined"
+msgstr ""
+
+#: ../nova/api/openstack/servers.py:238
+#, python-format
+msgid "Compute.api::lock %s"
+msgstr ""
+
+#: ../nova/api/openstack/servers.py:253
+#, python-format
+msgid "Compute.api::unlock %s"
+msgstr ""
+
+#: ../nova/api/openstack/servers.py:267
+#, python-format
+msgid "Compute.api::get_lock %s"
+msgstr ""
+
+#: ../nova/api/openstack/servers.py:281
+#, python-format
+msgid "Compute.api::reset_network %s"
+msgstr ""
+
+#: ../nova/api/openstack/servers.py:292
+#, python-format
+msgid "Compute.api::pause %s"
+msgstr ""
+
+#: ../nova/api/openstack/servers.py:303
+#, python-format
+msgid "Compute.api::unpause %s"
+msgstr ""
+
+#: ../nova/api/openstack/servers.py:314
+#, python-format
+msgid "compute.api::suspend %s"
+msgstr ""
+
+#: ../nova/api/openstack/servers.py:325
+#, python-format
+msgid "compute.api::resume %s"
+msgstr ""
+
+#: ../nova/twistd.py:157
+msgid "Wrong number of arguments."
+msgstr ""
+
+#: ../nova/twistd.py:209
+#, python-format
+msgid "pidfile %s does not exist. Daemon not running?\n"
+msgstr ""
+
+#: ../nova/twistd.py:221
+msgid "No such process"
+msgstr ""
+
+#: ../nova/twistd.py:230 ../nova/service.py:224
+#, python-format
+msgid "Serving %s"
+msgstr ""
+
+#: ../nova/twistd.py:262 ../nova/service.py:225
+msgid "Full set of FLAGS:"
+msgstr ""
+
+#: ../nova/twistd.py:266
+#, python-format
+msgid "Starting %s"
+msgstr ""
+
+#: ../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 ""
+
+#. 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 ""
+
+#: ../nova/virt/xenapi/volumeops.py:69
+#, python-format
+msgid "Unable to create VDI on SR %(sr_ref)s for instance %(instance_name)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/volumeops.py:80
+#, python-format
+msgid "Unable to use SR %(sr_ref)s for instance %(instance_name)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/volumeops.py:91
+#, python-format
+msgid "Unable to attach volume to instance %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/volumeops.py:93
+#, python-format
+msgid "Mountpoint %(mountpoint)s attached to instance %(instance_name)s"
+msgstr ""
+
+#. Detach VBD from VM
+#: ../nova/virt/xenapi/volumeops.py:104
+#, python-format
+msgid "Detach_volume: %(instance_name)s, %(mountpoint)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/volumeops.py:112
+#, python-format
+msgid "Unable to locate volume %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/volumeops.py:120
+#, python-format
+msgid "Unable to detach volume %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/volumeops.py:127
+#, python-format
+msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
+msgstr ""
+
+#: ../nova/compute/instance_types.py:41
+#, python-format
+msgid "Unknown instance type: %s"
+msgstr ""
+
+#: ../nova/crypto.py:46
+msgid "Filename of root CA"
+msgstr ""
+
+#: ../nova/crypto.py:49
+msgid "Filename of private key"
+msgstr ""
+
+#: ../nova/crypto.py:51
+msgid "Filename of root Certificate Revokation List"
+msgstr ""
+
+#: ../nova/crypto.py:53
+msgid "Where we keep our keys"
+msgstr ""
+
+#: ../nova/crypto.py:55
+msgid "Where we keep our root CA"
+msgstr ""
+
+#: ../nova/crypto.py:57
+msgid "Should we use a CA for each project?"
+msgstr "Kailangan bang gumamit ng CA bawat proyekto?"
+
+#: ../nova/crypto.py:61
+#, python-format
+msgid "Subject for certificate for users, %s for project, user, timestamp"
+msgstr ""
+
+#: ../nova/crypto.py:66
+#, python-format
+msgid "Subject for certificate for projects, %s for project, timestamp"
+msgstr ""
+
+#: ../nova/crypto.py:71
+#, python-format
+msgid "Subject for certificate for vpns, %s for project, timestamp"
+msgstr ""
+
+#: ../nova/crypto.py:258
+#, python-format
+msgid "Flags path: %s"
+msgstr ""
+
+#: ../nova/scheduler/manager.py:69
+#, python-format
+msgid "Casting to %(topic)s %(host)s for %(method)s"
+msgstr ""
+
+#: ../nova/compute/manager.py:78
+#, python-format
+msgid "check_instance_lock: decorating: |%s|"
+msgstr ""
+
+#: ../nova/compute/manager.py:80
+#, python-format
+msgid ""
+"check_instance_lock: arguments: |%(self)s| |%(context)s| |%(instance_id)s|"
+msgstr ""
+
+#: ../nova/compute/manager.py:84
+#, python-format
+msgid "check_instance_lock: locked: |%s|"
+msgstr ""
+
+#: ../nova/compute/manager.py:86
+#, python-format
+msgid "check_instance_lock: admin: |%s|"
+msgstr ""
+
+#: ../nova/compute/manager.py:91
+#, python-format
+msgid "check_instance_lock: executing: |%s|"
+msgstr ""
+
+#: ../nova/compute/manager.py:95
+#, python-format
+msgid "check_instance_lock: not executing |%s|"
+msgstr ""
+
+#: ../nova/compute/manager.py:179
+msgid "Instance has already been created"
+msgstr ""
+
+#: ../nova/compute/manager.py:180
+#, python-format
+msgid "instance %s: starting..."
+msgstr ""
+
+#. pylint: disable=W0702
+#: ../nova/compute/manager.py:219
+#, python-format
+msgid "instance %s: Failed to spawn"
+msgstr ""
+
+#: ../nova/compute/manager.py:233 ../nova/tests/test_cloud.py:286
+#, python-format
+msgid "Terminating instance %s"
+msgstr ""
+
+#: ../nova/compute/manager.py:255
+#, python-format
+msgid "Deallocating address %s"
+msgstr ""
+
+#: ../nova/compute/manager.py:268
+#, python-format
+msgid "trying to destroy already destroyed instance: %s"
+msgstr ""
+
+#: ../nova/compute/manager.py:282
+#, python-format
+msgid "Rebooting instance %s"
+msgstr ""
+
+#: ../nova/compute/manager.py:287
+#, python-format
+msgid ""
+"trying to reboot a non-running instance: %(instance_id)s (state: %(state)s "
+"expected: %(running)s)"
+msgstr ""
+
+#: ../nova/compute/manager.py:311
+#, python-format
+msgid "instance %s: snapshotting"
+msgstr ""
+
+#: ../nova/compute/manager.py:316
+#, python-format
+msgid ""
+"trying to snapshot a non-running instance: %(instance_id)s (state: %(state)s "
+"expected: %(running)s)"
+msgstr ""
+
+#: ../nova/compute/manager.py:332
+#, python-format
+msgid ""
+"trying to reset the password on a non-running instance: %(instance_id)s "
+"(state: %(instance_state)s expected: %(expected_state)s)"
+msgstr ""
+
+#: ../nova/compute/manager.py:335
+#, python-format
+msgid "instance %s: setting admin password"
+msgstr ""
+
+#: ../nova/compute/manager.py:353
+#, python-format
+msgid ""
+"trying to inject a file into a non-running instance: %(instance_id)s (state: "
+"%(instance_state)s expected: %(expected_state)s)"
+msgstr ""
+
+#: ../nova/compute/manager.py:362
+#, python-format
+msgid "instance %(nm)s: injecting file to %(plain_path)s"
+msgstr ""
+
+#: ../nova/compute/manager.py:372
+#, python-format
+msgid "instance %s: rescuing"
+msgstr ""
+
+#: ../nova/compute/manager.py:387
+#, python-format
+msgid "instance %s: unrescuing"
+msgstr ""
+
+#: ../nova/compute/manager.py:406
+#, python-format
+msgid "instance %s: pausing"
+msgstr ""
+
+#: ../nova/compute/manager.py:423
+#, python-format
+msgid "instance %s: unpausing"
+msgstr ""
+
+#: ../nova/compute/manager.py:440
+#, python-format
+msgid "instance %s: retrieving diagnostics"
+msgstr ""
+
+#: ../nova/compute/manager.py:453
+#, python-format
+msgid "instance %s: suspending"
+msgstr ""
+
+#: ../nova/compute/manager.py:472
+#, python-format
+msgid "instance %s: resuming"
+msgstr ""
+
+#: ../nova/compute/manager.py:491
+#, python-format
+msgid "instance %s: locking"
+msgstr ""
+
+#: ../nova/compute/manager.py:503
+#, python-format
+msgid "instance %s: unlocking"
+msgstr ""
+
+#: ../nova/compute/manager.py:513
+#, python-format
+msgid "instance %s: getting locked state"
+msgstr ""
+
+#: ../nova/compute/manager.py:526
+#, python-format
+msgid "instance %s: reset network"
+msgstr ""
+
+#: ../nova/compute/manager.py:535 ../nova/api/ec2/cloud.py:515
+#, python-format
+msgid "Get console output for instance %s"
+msgstr ""
+
+#: ../nova/compute/manager.py:543
+#, python-format
+msgid "instance %s: getting ajax console"
+msgstr ""
+
+#: ../nova/compute/manager.py:553
+#, python-format
+msgid ""
+"instance %(instance_id)s: attaching volume %(volume_id)s to %(mountpoint)s"
+msgstr ""
+
+#. pylint: disable=W0702
+#. NOTE(vish): The inline callback eats the exception info so we
+#. log the traceback here and reraise the same
+#. ecxception below.
+#: ../nova/compute/manager.py:569
+#, python-format
+msgid "instance %(instance_id)s: attach failed %(mountpoint)s, removing"
+msgstr ""
+
+#: ../nova/compute/manager.py:585
+#, python-format
+msgid ""
+"Detach volume %(volume_id)s from mountpoint %(mp)s on instance "
+"%(instance_id)s"
+msgstr ""
+
+#: ../nova/compute/manager.py:588
+#, python-format
+msgid "Detaching volume from unknown instance %s"
+msgstr ""
+
+#: ../nova/scheduler/simple.py:53
+#, python-format
+msgid "Host %s is not alive"
+msgstr ""
+
+#: ../nova/scheduler/simple.py:65
+msgid "All hosts have too many cores"
+msgstr ""
+
+#: ../nova/scheduler/simple.py:87
+#, python-format
+msgid "Host %s not available"
+msgstr ""
+
+#: ../nova/scheduler/simple.py:99
+msgid "All hosts have too many gigabytes"
+msgstr ""
+
+#: ../nova/scheduler/simple.py:119
+msgid "All hosts have too many networks"
+msgstr ""
+
+#: ../nova/volume/manager.py:85
+#, python-format
+msgid "Re-exporting %s volumes"
+msgstr ""
+
+#: ../nova/volume/manager.py:90
+#, python-format
+msgid "volume %s: skipping export"
+msgstr ""
+
+#: ../nova/volume/manager.py:96
+#, python-format
+msgid "volume %s: creating"
+msgstr ""
+
+#: ../nova/volume/manager.py:108
+#, python-format
+msgid "volume %(vol_name)s: creating lv of size %(vol_size)sG"
+msgstr ""
+
+#: ../nova/volume/manager.py:112
+#, python-format
+msgid "volume %s: creating export"
+msgstr ""
+
+#: ../nova/volume/manager.py:123
+#, python-format
+msgid "volume %s: created successfully"
+msgstr ""
+
+#: ../nova/volume/manager.py:131
+msgid "Volume is still attached"
+msgstr ""
+
+#: ../nova/volume/manager.py:133
+msgid "Volume is not local to this node"
+msgstr ""
+
+#: ../nova/volume/manager.py:136
+#, python-format
+msgid "volume %s: removing export"
+msgstr ""
+
+#: ../nova/volume/manager.py:138
+#, python-format
+msgid "volume %s: deleting"
+msgstr ""
+
+#: ../nova/volume/manager.py:147
+#, python-format
+msgid "volume %s: deleted successfully"
+msgstr ""
+
+#: ../nova/virt/xenapi/fake.py:74
+#, python-format
+msgid "%(text)s: _db_content => %(content)s"
+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 ""
+
+#: ../nova/virt/xenapi/fake.py:306
+#, python-format
+msgid "xenapi.fake does not have an implementation for %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/fake.py:341
+#, python-format
+msgid "Calling %(localname)s %(impl)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/fake.py:346
+#, python-format
+msgid "Calling getter %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/fake.py:406
+#, python-format
+msgid ""
+"xenapi.fake does not have an implementation for %s or it has been called "
+"with the wrong number of arguments"
+msgstr ""
+
+#: ../nova/tests/test_cloud.py:256
+msgid "Can't test instances without a real virtual env."
+msgstr ""
+
+#: ../nova/tests/test_cloud.py:268
+#, python-format
+msgid "Need to watch instance %s until it's running..."
+msgstr ""
+
+#: ../nova/virt/connection.py:73
+msgid "Failed to open connection to the hypervisor"
+msgstr ""
+
+#: ../nova/network/linux_net.py:187
+#, python-format
+msgid "Starting VLAN inteface %s"
+msgstr ""
+
+#: ../nova/network/linux_net.py:208
+#, python-format
+msgid "Starting Bridge interface for %s"
+msgstr ""
+
+#. pylint: disable=W0703
+#: ../nova/network/linux_net.py:314
+#, python-format
+msgid "Hupping dnsmasq threw %s"
+msgstr ""
+
+#: ../nova/network/linux_net.py:316
+#, python-format
+msgid "Pid %d is stale, relaunching dnsmasq"
+msgstr ""
+
+#. pylint: disable=W0703
+#: ../nova/network/linux_net.py:358
+#, python-format
+msgid "killing radvd threw %s"
+msgstr ""
+
+#: ../nova/network/linux_net.py:360
+#, python-format
+msgid "Pid %d is stale, relaunching radvd"
+msgstr ""
+
+#. pylint: disable=W0703
+#: ../nova/network/linux_net.py:449
+#, python-format
+msgid "Killing dnsmasq threw %s"
+msgstr ""
+
+#: ../nova/utils.py:58
+#, python-format
+msgid "Inner Exception: %s"
+msgstr ""
+
+#: ../nova/utils.py:59
+#, python-format
+msgid "Class %s cannot be found"
+msgstr ""
+
+#: ../nova/utils.py:118
+#, python-format
+msgid "Fetching %s"
+msgstr ""
+
+#: ../nova/utils.py:130
+#, python-format
+msgid "Running cmd (subprocess): %s"
+msgstr ""
+
+#: ../nova/utils.py:143 ../nova/utils.py:183
+#, python-format
+msgid "Result was %s"
+msgstr ""
+
+#: ../nova/utils.py:159
+#, python-format
+msgid "Running cmd (SSH): %s"
+msgstr ""
+
+#: ../nova/utils.py:217
+#, python-format
+msgid "debug in callback: %s"
+msgstr ""
+
+#: ../nova/utils.py:222
+#, python-format
+msgid "Running %s"
+msgstr ""
+
+#: ../nova/utils.py:262
+#, python-format
+msgid "Link Local address is not found.:%s"
+msgstr ""
+
+#: ../nova/utils.py:265
+#, python-format
+msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
+msgstr ""
+
+#: ../nova/utils.py:363
+#, python-format
+msgid "Invalid backend: %s"
+msgstr ""
+
+#: ../nova/utils.py:374
+#, python-format
+msgid "backend %s"
+msgstr ""
+
+#: ../nova/fakerabbit.py:49
+#, python-format
+msgid "(%(nm)s) publish (key: %(routing_key)s) %(message)s"
+msgstr ""
+
+#: ../nova/fakerabbit.py:54
+#, python-format
+msgid "Publishing to route %s"
+msgstr ""
+
+#: ../nova/fakerabbit.py:84
+#, python-format
+msgid "Declaring queue %s"
+msgstr ""
+
+#: ../nova/fakerabbit.py:90
+#, python-format
+msgid "Declaring exchange %s"
+msgstr ""
+
+#: ../nova/fakerabbit.py:96
+#, python-format
+msgid "Binding %(queue)s to %(exchange)s with key %(routing_key)s"
+msgstr ""
+
+#: ../nova/fakerabbit.py:121
+#, python-format
+msgid "Getting from %(queue)s: %(message)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:135 ../nova/virt/hyperv.py:171
+#, python-format
+msgid "Created VM %s..."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:138
+#, python-format
+msgid "Created VM %(instance_name)s as %(vm_ref)s."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:168
+#, python-format
+msgid "Creating VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:171
+#, python-format
+msgid "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:187
+#, python-format
+msgid "VBD not found in instance %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:197
+#, python-format
+msgid "Unable to unplug VBD %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:209
+#, python-format
+msgid "Unable to destroy VBD %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:224
+#, python-format
+msgid "Creating VIF for VM %(vm_ref)s, network %(network_ref)s."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:227
+#, python-format
+msgid "Created VIF %(vif_ref)s for VM %(vm_ref)s, network %(network_ref)s."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:246
+#, python-format
+msgid ""
+"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s) on "
+"%(sr_ref)s."
+msgstr ""
+
+#. TODO(sirp): Add quiesce and VSS locking support when Windows support
+#. is added
+#: ../nova/virt/xenapi/vm_utils.py:258
+#, python-format
+msgid "Snapshotting VM %(vm_ref)s with label '%(label)s'..."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:272
+#, python-format
+msgid "Created snapshot %(template_vm_ref)s from VM %(vm_ref)s."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:286
+#, python-format
+msgid "Asking xapi to upload %(vdi_uuids)s as ID %(image_id)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:327
+#, python-format
+msgid "Size for image %(image)s:%(virtual_size)d"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:332
+#, python-format
+msgid "Glance image %s"
+msgstr ""
+
+#. we need to invoke a plugin for copying VDI's
+#. content into proper path
+#: ../nova/virt/xenapi/vm_utils.py:342
+#, python-format
+msgid "Copying VDI %s to /boot/guest on dom0"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:352
+#, python-format
+msgid "Kernel/Ramdisk VDI %s destroyed"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:361
+#, python-format
+msgid "Asking xapi to fetch %(url)s as %(access)s"
+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 ""
+
+#: ../nova/virt/xenapi/vm_utils.py:397
+#, python-format
+msgid "PV Kernel in VDI:%s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:405
+#, python-format
+msgid "Running pygrub against %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:411
+#, python-format
+msgid "Found Xen kernel %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:413
+msgid "No Xen kernel found. Booting HVM."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:425 ../nova/virt/hyperv.py:431
+#, python-format
+msgid "duplicate name found: %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:442
+#, python-format
+msgid "VDI %s is still available"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:463
+#, python-format
+msgid "(VM_UTILS) xenserver vm state -> |%s|"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:465
+#, python-format
+msgid "(VM_UTILS) xenapi power_state -> |%s|"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:525
+#, python-format
+msgid "VHD %(vdi_uuid)s has parent %(parent_ref)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:542
+#, python-format
+msgid "Re-scanning SR %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:567
+#, python-format
+msgid ""
+"VHD coalesce attempts exceeded (%(counter)d > %(max_attempts)d), giving up..."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:574
+#, python-format
+msgid ""
+"Parent %(parent_uuid)s doesn't match original parent "
+"%(original_parent_uuid)s, waiting for coalesce..."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:590
+#, python-format
+msgid "No VDIs found for VM %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:594
+#, python-format
+msgid "Unexpected number of VDIs (%(num_vdis)s) found for VM %(vm_ref)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:653
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:188
+#, python-format
+msgid "Creating VBD for VDI %s ... "
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:655
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:190
+#, python-format
+msgid "Creating VBD for VDI %s done."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:657
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:192
+#, python-format
+msgid "Plugging VBD %s ... "
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:659
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:194
+#, python-format
+msgid "Plugging VBD %s done."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:661
+#, python-format
+msgid "VBD %(vbd)s plugged as %(orig_dev)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:664
+#, python-format
+msgid "VBD %(vbd)s plugged into wrong dev, remapping to %(dev)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:668
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:197
+#, python-format
+msgid "Destroying VBD for VDI %s ... "
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:671
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:200
+#, python-format
+msgid "Destroying VBD for VDI %s done."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:683
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:211
+msgid "VBD.unplug successful first time."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:688
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:216
+msgid "VBD.unplug rejected: retrying..."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:692
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:220
+msgid "VBD.unplug successful eventually."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:695
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:223
+#, python-format
+msgid "Ignoring XenAPI.Failure in VBD.unplug: %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:704
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:66
+#, python-format
+msgid "Ignoring XenAPI.Failure %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:735
+#, python-format
+msgid ""
+"Writing partition table %(primary_first)d %(primary_last)d to %(dest)s..."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:747
+#, python-format
+msgid "Writing partition table %s done."
+msgstr ""
+
+#: ../nova/tests/test_rpc.py:89
+#, python-format
+msgid "Nested received %(queue)s, %(value)s"
+msgstr ""
+
+#: ../nova/tests/test_rpc.py:95
+#, python-format
+msgid "Nested return %s"
+msgstr ""
+
+#: ../nova/tests/test_rpc.py:120 ../nova/tests/test_rpc.py:126
+#, python-format
+msgid "Received %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:44
+msgid "Use of empty request context is deprecated"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:133
+#, python-format
+msgid "No service for id %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:251
+#, python-format
+msgid "No service for %(host)s, %(binary)s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:592
+msgid "No fixed ips defined"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:608
+#, python-format
+msgid "No floating ip for address %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:629
+#, python-format
+msgid "No address for instance %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:961
+#, python-format
+msgid "no keypair for user %(user_id)s, name %(name)s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1076 ../nova/db/sqlalchemy/api.py:1156
+#, python-format
+msgid "No network for id %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1086
+msgid "No networks defined"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1115
+#, python-format
+msgid "No network for bridge %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1129 ../nova/db/sqlalchemy/api.py:1142
+#, python-format
+msgid "No network for instance %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1277
+#, python-format
+msgid "Token %s does not exist"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1302
+#, python-format
+msgid "No quota for project_id %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1455 ../nova/db/sqlalchemy/api.py:1501
+#: ../nova/api/ec2/__init__.py:323
+#, python-format
+msgid "Volume %s not found"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1514
+#, python-format
+msgid "No export device found for volume %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1527
+#, python-format
+msgid "No target id found for volume %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1572
+#, python-format
+msgid "No security group with id %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1589
+#, python-format
+msgid "No security group named %(group_name)s for project: %(project_id)s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1682
+#, python-format
+msgid "No secuity group rule with id %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1756
+#, python-format
+msgid "No user for id %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1772
+#, python-format
+msgid "No user for access key %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1834
+#, python-format
+msgid "No project with id %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1979
+#, python-format
+msgid "No console pool with id %(pool_id)s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1996
+#, python-format
+msgid ""
+"No console pool of type %(console_type)s for compute host %(compute_host)s "
+"on proxy host %(host)s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:2035
+#, python-format
+msgid "No console for instance %(instance_id)s in pool %(pool_id)s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:2057
+#, python-format
+msgid "on instance %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:2058
+#, python-format
+msgid "No console with id %(console_id)s %(idesc)s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:2078 ../nova/db/sqlalchemy/api.py:2097
+#, python-format
+msgid "No zone with id %(zone_id)s"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:160
+#, python-format
+msgid "Checking state of %s"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:165
+#, python-format
+msgid "Current state of %(name)s was %(state)s."
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:183
+#, python-format
+msgid "Connecting to libvirt: %s"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:196
+msgid "Connection to libvirt broke"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:258
+#, python-format
+msgid "instance %(instance_name)s: deleting instance files %(target)s"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:283
+#, python-format
+msgid "Invalid device path %s"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:313
+#, python-format
+msgid "No disk at %s"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:320
+msgid "Instance snapshotting is not supported for libvirtat this time"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:336
+#, python-format
+msgid "instance %s: rebooted"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:339
+#, python-format
+msgid "_wait_for_reboot failed: %s"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:382
+#, python-format
+msgid "instance %s: rescued"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:385
+#, python-format
+msgid "_wait_for_rescue failed: %s"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:411
+#, python-format
+msgid "instance %s: is running"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:422
+#, python-format
+msgid "instance %s: booted"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:425 ../nova/virt/xenapi/vmops.py:186
+#, python-format
+msgid "instance %s: failed to boot"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:436
+#, python-format
+msgid "virsh said: %r"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:440
+msgid "cool, it's a device"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:448
+#, python-format
+msgid "data: %(data)r, fpath: %(fpath)r"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:456
+#, python-format
+msgid "Contents of file %(fpath)s: %(contents)r"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:489
+msgid "Unable to find an open port"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:563
+#, python-format
+msgid "instance %s: Creating image"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:646
+#, python-format
+msgid "instance %(inst_name)s: injecting key into image %(img_id)s"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:649
+#, python-format
+msgid "instance %(inst_name)s: injecting net into image %(img_id)s"
+msgstr ""
+
+#. This could be a windows image, or a vmdk format disk
+#: ../nova/virt/libvirt_conn.py:657
+#, python-format
+msgid ""
+"instance %(inst_name)s: ignoring error injecting data into image %(img_id)s "
+"(%(e)s)"
+msgstr ""
+
+#. TODO(termie): cache?
+#: ../nova/virt/libvirt_conn.py:665
+#, python-format
+msgid "instance %s: starting toXML method"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:732
+#, python-format
+msgid "instance %s: finished toXML method"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:751
+msgid "diagnostics are not supported for libvirt"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:1225
+#, python-format
+msgid "Attempted to unfilter instance %s which is not filtered"
+msgstr ""
+
+#: ../nova/api/ec2/metadatarequesthandler.py:76
+#, python-format
+msgid "Failed to get metadata for ip: %s"
+msgstr ""
+
+#: ../nova/auth/fakeldap.py:33
+msgid "Attempted to instantiate singleton"
+msgstr ""
+
+#: ../nova/network/api.py:39
+#, python-format
+msgid "Quota exceeeded for %s, tried to allocate address"
+msgstr ""
+
+#: ../nova/network/api.py:42
+msgid "Address quota exceeded. You cannot allocate any more addresses"
+msgstr ""
+
+#: ../nova/tests/test_volume.py:162
+#, python-format
+msgid "Target %s allocated"
+msgstr ""
+
+#: ../nova/virt/images.py:70
+#, python-format
+msgid "Finished retreving %(url)s -- placed in %(path)s"
+msgstr ""
+
+#: ../nova/scheduler/driver.py:66
+msgid "Must implement a fallback schedule"
+msgstr ""
+
+#: ../nova/console/manager.py:70
+msgid "Adding console"
+msgstr ""
+
+#: ../nova/console/manager.py:90
+#, python-format
+msgid "Tried to remove non-existant console %(console_id)s."
+msgstr ""
+
+#: ../nova/api/direct.py:149
+msgid "not available"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:62
+#, python-format
+msgid "The key_pair %s already exists"
+msgstr ""
+
+#. TODO(vish): Do this with M2Crypto instead
+#: ../nova/api/ec2/cloud.py:118
+#, python-format
+msgid "Generating root CA: %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:303
+#, python-format
+msgid "Create key pair %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:311
+#, python-format
+msgid "Delete key pair %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:386
+#, python-format
+msgid "%s is not a valid ipProtocol"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:390
+msgid "Invalid port range"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:421
+#, python-format
+msgid "Revoke security group ingress %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:430 ../nova/api/ec2/cloud.py:459
+msgid "Not enough parameters to build a valid rule."
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:443
+msgid "No rule for the specified parameters."
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:450
+#, python-format
+msgid "Authorize security group ingress %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:464
+#, python-format
+msgid "This rule already exists in group %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:492
+#, python-format
+msgid "Create Security Group %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:495
+#, python-format
+msgid "group %s already exists"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:507
+#, python-format
+msgid "Delete security group %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:584
+#, python-format
+msgid "Create volume of %s GB"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:612
+#, python-format
+msgid "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:629
+#, python-format
+msgid "Detach volume %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:761
+msgid "Allocate address"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:766
+#, python-format
+msgid "Release address %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:771
+#, python-format
+msgid "Associate address %(public_ip)s to instance %(instance_id)s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:780
+#, python-format
+msgid "Disassociate address %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:807
+msgid "Going to start terminating instances"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:815
+#, python-format
+msgid "Reboot instance %r"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:867
+#, python-format
+msgid "De-registering image %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:875
+#, python-format
+msgid "Registered image %(image_location)s with id %(image_id)s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:882 ../nova/api/ec2/cloud.py:900
+#, python-format
+msgid "attribute not supported: %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:890
+#, python-format
+msgid "invalid id: %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:903
+msgid "user or group not specified"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:905
+msgid "only group \"all\" is supported"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:907
+msgid "operation_type must be add or remove"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:908
+#, python-format
+msgid "Updating image %s publicity"
+msgstr ""
+
+#: ../bin/nova-api.py:52
+#, python-format
+msgid "Using paste.deploy config at: %s"
+msgstr ""
+
+#: ../bin/nova-api.py:57
+#, python-format
+msgid "No paste configuration for app: %s"
+msgstr ""
+
+#: ../bin/nova-api.py:59
+#, python-format
+msgid ""
+"App Config: %(api)s\n"
+"%(config)r"
+msgstr ""
+
+#: ../bin/nova-api.py:64
+#, python-format
+msgid "Running %s API"
+msgstr ""
+
+#: ../bin/nova-api.py:69
+#, python-format
+msgid "No known API applications configured in %s."
+msgstr ""
+
+#: ../bin/nova-api.py:83
+#, python-format
+msgid "Starting nova-api node (version %s)"
+msgstr ""
+
+#: ../bin/nova-api.py:89
+#, python-format
+msgid "No paste configuration found for: %s"
+msgstr ""
+
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:84
+#, python-format
+msgid "Argument %(key)s value %(value)s is too short."
+msgstr ""
+
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:89
+#, python-format
+msgid "Argument %(key)s value %(value)s contains invalid characters."
+msgstr ""
+
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:94
+#, python-format
+msgid "Argument %(key)s value %(value)s starts with a hyphen."
+msgstr ""
+
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:102
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:130
+#, python-format
+msgid "Argument %s is required."
+msgstr ""
+
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:117
+#, python-format
+msgid ""
+"Argument %(key)s may not take value %(value)s. Valid values are ['true', "
+"'false']."
+msgstr ""
+
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:163
+#, python-format
+msgid ""
+"Created VDI %(vdi_ref)s (%(label)s, %(size)s, %(read_only)s) on %(sr_ref)s."
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:67
+#, python-format
+msgid "Attempted to create non-unique name %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:73
+#, python-format
+msgid "instance %(name)s: not enough free memory"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:148
+#, python-format
+msgid "Starting VM %s..."
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:151
+#, python-format
+msgid "Spawning VM %(instance_name)s created %(vm_ref)s."
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:162
+#, python-format
+msgid "Invalid value for onset_files: '%s'"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:167
+#, python-format
+msgid "Injecting file path: '%s'"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:180
+#, python-format
+msgid "Instance %s: booted"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:232
+#, python-format
+msgid "Instance not present %s"
+msgstr ""
+
+#. TODO(sirp): Add quiesce and VSS locking support when Windows support
+#. is added
+#: ../nova/virt/xenapi/vmops.py:261
+#, python-format
+msgid "Starting snapshot for VM %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:269
+#, python-format
+msgid "Unable to Snapshot %(vm_ref)s: %(exc)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:280
+#, python-format
+msgid "Finished snapshot and upload for VM %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:356
+#, python-format
+msgid "VM %(vm)s already halted, skipping shutdown..."
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:389
+msgid "Removing kernel/ramdisk files"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:399
+msgid "kernel/ramdisk files removed"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:561
+#, python-format
+msgid ""
+"TIMEOUT: The call to %(method)s timed out. VM id=%(instance_id)s; "
+"args=%(strargs)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:564
+#, python-format
+msgid ""
+"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. VM "
+"id=%(instance_id)s; args=%(strargs)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:569
+#, python-format
+msgid ""
+"The call to %(method)s returned an error: %(e)s. VM id=%(instance_id)s; "
+"args=%(strargs)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:760
+#, python-format
+msgid "OpenSSL error: %s"
+msgstr ""
+
+#: ../nova/tests/test_compute.py:148
+#, python-format
+msgid "Running instances: %s"
+msgstr ""
+
+#: ../nova/tests/test_compute.py:154
+#, python-format
+msgid "After terminating instances: %s"
+msgstr ""
+
+#: ../nova/cloudpipe/pipelib.py:45
+msgid "Template for script to run on cloudpipe instance boot"
+msgstr ""
+
+#: ../nova/cloudpipe/pipelib.py:48
+msgid "Network to push into openvpn config"
+msgstr ""
+
+#: ../nova/cloudpipe/pipelib.py:51
+msgid "Netmask to push into openvpn config"
+msgstr ""
+
+#: ../nova/cloudpipe/pipelib.py:97
+#, python-format
+msgid "Launching VPN for %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/migration.py:35
+msgid "python-migrate is not installed. Exiting."
+msgstr ""
+
+#: ../nova/image/s3.py:99
+#, python-format
+msgid "Image %s could not be found"
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:121
+msgid "Too many failed authentications."
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:131
+#, python-format
+msgid ""
+"Access key %(access_key)s has had %(failures)d failed authentications and "
+"will be locked out for %(lock_mins)d minutes."
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:169 ../nova/objectstore/handler.py:140
+#, python-format
+msgid "Authentication Failure: %s"
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:182
+#, python-format
+msgid "Authenticated Request For %(uname)s:%(pname)s)"
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:207
+#, python-format
+msgid "action: %s"
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:209
+#, python-format
+msgid "arg: %(key)s\t\tval: %(value)s"
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:281
+#, python-format
+msgid ""
+"Unauthorized request for controller=%(controller)s and action=%(action)s"
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:314
+#, python-format
+msgid "InstanceNotFound raised: %s"
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:320
+#, python-format
+msgid "VolumeNotFound raised: %s"
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:326
+#, python-format
+msgid "NotFound raised: %s"
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:329
+#, python-format
+msgid "ApiError raised: %s"
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:338
+#, python-format
+msgid "Unexpected error raised: %s"
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:343
+msgid "An unknown error has occurred. Please try your request again."
+msgstr ""
+
+#: ../nova/auth/dbdriver.py:84
+#, python-format
+msgid "User %s already exists"
+msgstr ""
+
+#: ../nova/auth/dbdriver.py:106 ../nova/auth/ldapdriver.py:232
+#, python-format
+msgid "Project can't be created because manager %s doesn't exist"
+msgstr ""
+
+#: ../nova/auth/dbdriver.py:122 ../nova/auth/ldapdriver.py:243
+#, python-format
+msgid "Project can't be created because user %s doesn't exist"
+msgstr ""
+
+#: ../nova/auth/dbdriver.py:135 ../nova/auth/ldapdriver.py:229
+#, python-format
+msgid "Project can't be created because project %s already exists"
+msgstr ""
+
+#: ../nova/auth/dbdriver.py:157 ../nova/auth/ldapdriver.py:268
+#, python-format
+msgid "Project can't be modified because manager %s doesn't exist"
+msgstr ""
+
+#: ../nova/auth/dbdriver.py:245
+#, python-format
+msgid "User \"%s\" not found"
+msgstr ""
+
+#: ../nova/auth/dbdriver.py:248
+#, python-format
+msgid "Project \"%s\" not found"
+msgstr ""
+
+#: ../nova/virt/xenapi_conn.py:129
+msgid ""
+"Must specify xenapi_connection_url, xenapi_connection_username (optionally), "
+"and xenapi_connection_password to use connection_type=xenapi"
+msgstr ""
+
+#: ../nova/virt/xenapi_conn.py:311
+#, python-format
+msgid "Task [%(name)s] %(task)s status: success %(result)s"
+msgstr ""
+
+#: ../nova/virt/xenapi_conn.py:317
+#, python-format
+msgid "Task [%(name)s] %(task)s status: %(status)s %(error_info)s"
+msgstr ""
+
+#: ../nova/virt/xenapi_conn.py:331 ../nova/virt/xenapi_conn.py:344
+#, python-format
+msgid "Got exception: %s"
+msgstr ""
+
+#: ../nova/compute/monitor.py:259
+#, python-format
+msgid "updating %s..."
+msgstr ""
+
+#: ../nova/compute/monitor.py:289
+msgid "unexpected error during update"
+msgstr ""
+
+#: ../nova/compute/monitor.py:356
+#, python-format
+msgid "Cannot get blockstats for \"%(disk)s\" on \"%(iid)s\""
+msgstr ""
+
+#: ../nova/compute/monitor.py:379
+#, python-format
+msgid "Cannot get ifstats for \"%(interface)s\" on \"%(iid)s\""
+msgstr ""
+
+#: ../nova/compute/monitor.py:414
+msgid "unexpected exception getting connection"
+msgstr ""
+
+#: ../nova/compute/monitor.py:429
+#, python-format
+msgid "Found instance: %s"
+msgstr ""
+
+#: ../nova/volume/san.py:67
+#, python-format
+msgid "Could not find iSCSI export for volume %s"
+msgstr ""
+
+#: ../nova/api/ec2/apirequest.py:100
+#, python-format
+msgid ""
+"Unsupported API request: controller = %(controller)s, action = %(action)s"
+msgstr ""
+
+#: ../nova/api/openstack/__init__.py:55
+#, python-format
+msgid "Caught error: %s"
+msgstr ""
+
+#: ../nova/api/openstack/__init__.py:76
+msgid "Including admin operations in API."
+msgstr ""
+
+#: ../nova/console/xvp.py:99
+msgid "Rebuilding xvp conf"
+msgstr ""
+
+#: ../nova/console/xvp.py:116
+#, python-format
+msgid "Re-wrote %s"
+msgstr ""
+
+#: ../nova/console/xvp.py:121
+msgid "Stopping xvp"
+msgstr ""
+
+#: ../nova/console/xvp.py:134
+msgid "Starting xvp"
+msgstr ""
+
+#: ../nova/console/xvp.py:141
+#, python-format
+msgid "Error starting xvp: %s"
+msgstr ""
+
+#: ../nova/console/xvp.py:144
+msgid "Restarting xvp"
+msgstr ""
+
+#: ../nova/console/xvp.py:146
+msgid "xvp not running..."
+msgstr ""
+
+#: ../bin/nova-manage.py:272
+msgid ""
+"The above error may show that the database has not been created.\n"
+"Please create a database using nova-manage sync db before running this "
+"command."
+msgstr ""
+
+#: ../bin/nova-manage.py:426
+msgid ""
+"No more networks available. If this is a new installation, you need\n"
+"to call something like this:\n"
+"\n"
+" nova-manage network create 10.0.0.0/8 10 64\n"
+"\n"
+msgstr ""
+
+#: ../bin/nova-manage.py:431
+msgid ""
+"The above error may show that the certificate db has not been created.\n"
+"Please create a database by running a nova-api server on this host."
+msgstr ""
+
+#: ../bin/nova-manage.py:447 ../bin/nova-manage.py:536
+msgid "network"
+msgstr ""
+
+#: ../bin/nova-manage.py:448
+msgid "IP address"
+msgstr ""
+
+#: ../bin/nova-manage.py:449
+msgid "MAC address"
+msgstr ""
+
+#: ../bin/nova-manage.py:450
+msgid "hostname"
+msgstr ""
+
+#: ../bin/nova-manage.py:451
+msgid "host"
+msgstr ""
+
+#: ../bin/nova-manage.py:537
+msgid "netmask"
+msgstr ""
+
+#: ../bin/nova-manage.py:538
+msgid "start address"
+msgstr ""
+
+#: ../nova/virt/disk.py:69
+#, python-format
+msgid "Failed to load partition: %s"
+msgstr ""
+
+#: ../nova/virt/disk.py:91
+#, python-format
+msgid "Failed to mount filesystem: %s"
+msgstr ""
+
+#: ../nova/virt/disk.py:124
+#, python-format
+msgid "nbd device %s did not show up"
+msgstr ""
+
+#: ../nova/virt/disk.py:128
+#, python-format
+msgid "Could not attach image to loopback: %s"
+msgstr ""
+
+#: ../nova/virt/disk.py:151
+msgid "No free nbd devices"
+msgstr ""
+
+#: ../doc/ext/nova_todo.py:46
+#, python-format
+msgid "%(filename)s, line %(line_info)d"
+msgstr ""
+
+#. FIXME(chiradeep): implement this
+#: ../nova/virt/hyperv.py:118
+msgid "In init host"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:131
+#, python-format
+msgid "Attempt to create duplicate vm %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:148
+#, python-format
+msgid "Starting VM %s "
+msgstr ""
+
+#: ../nova/virt/hyperv.py:150
+#, python-format
+msgid "Started VM %s "
+msgstr ""
+
+#: ../nova/virt/hyperv.py:152
+#, python-format
+msgid "spawn vm failed: %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:169
+#, python-format
+msgid "Failed to create VM %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:188
+#, python-format
+msgid "Set memory for vm %s..."
+msgstr ""
+
+#: ../nova/virt/hyperv.py:198
+#, python-format
+msgid "Set vcpus for vm %s..."
+msgstr ""
+
+#: ../nova/virt/hyperv.py:202
+#, python-format
+msgid "Creating disk for %(vm_name)s by attaching disk file %(vhdfile)s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:227
+#, python-format
+msgid "Failed to add diskdrive to VM %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:230
+#, python-format
+msgid "New disk drive path is %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:247
+#, python-format
+msgid "Failed to add vhd file to VM %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:249
+#, python-format
+msgid "Created disk for %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:253
+#, python-format
+msgid "Creating nic for %s "
+msgstr ""
+
+#: ../nova/virt/hyperv.py:272
+msgid "Failed creating a port on the external vswitch"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:273
+#, python-format
+msgid "Failed creating port for %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:276
+#, python-format
+msgid "Created switch port %(vm_name)s on switch %(ext_path)s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:286
+#, python-format
+msgid "Failed to add nic to VM %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:288
+#, python-format
+msgid "Created nic for %s "
+msgstr ""
+
+#: ../nova/virt/hyperv.py:321
+#, python-format
+msgid "WMI job failed: %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:325
+#, python-format
+msgid "WMI job succeeded: %(desc)s, Elapsed=%(elap)s "
+msgstr ""
+
+#: ../nova/virt/hyperv.py:361
+#, python-format
+msgid "Got request to destroy vm %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:386
+#, python-format
+msgid "Failed to destroy vm %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:393
+#, python-format
+msgid "Del: disk %(vhdfile)s vm %(instance_name)s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:415
+#, python-format
+msgid ""
+"Got Info for vm %(instance_id)s: state=%(state)s, mem=%(memusage)s, "
+"num_cpu=%(numprocs)s, cpu_time=%(uptime)s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:451
+#, python-format
+msgid "Successfully changed vm state of %(vm_name)s to %(req_state)s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:454
+#, python-format
+msgid "Failed to change vm state of %(vm_name)s to %(req_state)s"
+msgstr ""
+
+#: ../nova/compute/api.py:71
+#, python-format
+msgid "Instance %d was not found in get_network_topic"
+msgstr ""
+
+#: ../nova/compute/api.py:77
+#, python-format
+msgid "Instance %d has no host"
+msgstr ""
+
+#: ../nova/compute/api.py:97
+#, python-format
+msgid "Quota exceeeded for %(pid)s, tried to run %(min_count)s instances"
+msgstr ""
+
+#: ../nova/compute/api.py:99
+#, python-format
+msgid ""
+"Instance quota exceeded. You can only run %s more instances of this type."
+msgstr ""
+
+#: ../nova/compute/api.py:112
+msgid "Creating a raw instance"
+msgstr ""
+
+#: ../nova/compute/api.py:160
+#, python-format
+msgid "Going to run %s instances..."
+msgstr ""
+
+#: ../nova/compute/api.py:187
+#, python-format
+msgid "Casting to scheduler for %(pid)s/%(uid)s's instance %(instance_id)s"
+msgstr ""
+
+#: ../nova/compute/api.py:292
+#, python-format
+msgid "Going to try to terminate %s"
+msgstr ""
+
+#: ../nova/compute/api.py:296
+#, python-format
+msgid "Instance %d was not found during terminate"
+msgstr ""
+
+#: ../nova/compute/api.py:301
+#, python-format
+msgid "Instance %d is already being terminated"
+msgstr ""
+
+#: ../nova/compute/api.py:481
+#, python-format
+msgid "Invalid device specified: %s. Example device: /dev/vdb"
+msgstr ""
+
+#: ../nova/compute/api.py:496
+msgid "Volume isn't attached to anything!"
+msgstr ""
+
+#: ../nova/rpc.py:98
+#, python-format
+msgid ""
+"AMQP server on %(fl_host)s:%(fl_port)d is unreachable. Trying again in "
+"%(fl_intv)d seconds."
+msgstr ""
+
+#: ../nova/rpc.py:103
+#, python-format
+msgid "Unable to connect to AMQP server after %d tries. Shutting down."
+msgstr ""
+"Hindi maka-konekta sa AMQP server pagkatapos ng %d ulit. Isasara na ang "
+"sistema."
+
+#: ../nova/rpc.py:122
+msgid "Reconnected to queue"
+msgstr "Muling kumonekta sa queue"
+
+#: ../nova/rpc.py:129
+msgid "Failed to fetch message from queue"
+msgstr "Hindi nai-abot ang mensahe buhat sa queue"
+
+#: ../nova/rpc.py:159
+#, python-format
+msgid "Initing the Adapter Consumer for %s"
+msgstr ""
+
+#: ../nova/rpc.py:178
+#, python-format
+msgid "received %s"
+msgstr "natanggap %s"
+
+#. NOTE(vish): we may not want to ack here, but that means that bad
+#. messages stay in the queue indefinitely, so for now
+#. we just log the message and send an error string
+#. back to the caller
+#: ../nova/rpc.py:191
+#, python-format
+msgid "no method for message: %s"
+msgstr "walang paraan para sa mensahe: %s"
+
+#: ../nova/rpc.py:192
+#, python-format
+msgid "No method for message: %s"
+msgstr "Walang paraan para sa mensahe: %s"
+
+#: ../nova/rpc.py:253
+#, python-format
+msgid "Returning exception %s to caller"
+msgstr ""
+
+#: ../nova/rpc.py:294
+#, python-format
+msgid "unpacked context: %s"
+msgstr ""
+
+#: ../nova/rpc.py:313
+msgid "Making asynchronous call..."
+msgstr ""
+
+#: ../nova/rpc.py:316
+#, python-format
+msgid "MSG_ID is %s"
+msgstr ""
+
+#: ../nova/rpc.py:354
+msgid "Making asynchronous cast..."
+msgstr ""
+
+#: ../nova/rpc.py:364
+#, python-format
+msgid "response %s"
+msgstr ""
+
+#: ../nova/rpc.py:373
+#, python-format
+msgid "topic is %s"
+msgstr ""
+
+#: ../nova/rpc.py:374
+#, python-format
+msgid "message %s"
+msgstr ""
+
+#: ../nova/volume/driver.py:78
+#, python-format
+msgid "Recovering from a failed execute. Try number %s"
+msgstr ""
+
+#: ../nova/volume/driver.py:87
+#, python-format
+msgid "volume group %s doesn't exist"
+msgstr ""
+
+#: ../nova/volume/driver.py:220
+#, python-format
+msgid "FAKE AOE: %s"
+msgstr ""
+
+#: ../nova/volume/driver.py:233
+msgid "Skipping ensure_export. No iscsi_target "
+msgstr ""
+
+#: ../nova/volume/driver.py:279 ../nova/volume/driver.py:288
+msgid "Skipping remove_export. No iscsi_target "
+msgstr ""
+
+#: ../nova/volume/driver.py:347
+#, python-format
+msgid "FAKE ISCSI: %s"
+msgstr ""
+
+#: ../nova/volume/driver.py:359
+#, python-format
+msgid "rbd has no pool %s"
+msgstr ""
+
+#: ../nova/volume/driver.py:414
+#, python-format
+msgid "Sheepdog is not working: %s"
+msgstr ""
+
+#: ../nova/volume/driver.py:416
+msgid "Sheepdog is not working"
+msgstr ""
+
+#: ../nova/wsgi.py:68
+#, python-format
+msgid "Starting %(arg0)s on %(host)s:%(port)s"
+msgstr ""
+
+#: ../nova/wsgi.py:147
+msgid "You must implement __call__"
+msgstr ""
+
+#: ../bin/nova-instancemonitor.py:55
+msgid "Starting instance monitor"
+msgstr ""
+
+#: ../bin/nova-dhcpbridge.py:58
+msgid "leasing ip"
+msgstr ""
+
+#: ../bin/nova-dhcpbridge.py:73
+msgid "Adopted old lease or got a change of mac/hostname"
+msgstr ""
+
+#: ../bin/nova-dhcpbridge.py:80
+msgid "releasing ip"
+msgstr ""
+
+#: ../bin/nova-dhcpbridge.py:123
+#, python-format
+msgid ""
+"Called %(action)s for mac %(mac)s with ip %(ip)s and hostname %(hostname)s "
+"on interface %(interface)s"
+msgstr ""
+
+#: ../nova/virt/fake.py:239
+#, python-format
+msgid "Instance %s Not Found"
+msgstr ""
+
+#: ../nova/network/manager.py:153
+#, python-format
+msgid "Dissassociated %s stale fixed ip(s)"
+msgstr ""
+
+#: ../nova/network/manager.py:157
+msgid "setting network host"
+msgstr ""
+
+#: ../nova/network/manager.py:212
+#, python-format
+msgid "Leasing IP %s"
+msgstr ""
+
+#: ../nova/network/manager.py:216
+#, python-format
+msgid "IP %s leased that isn't associated"
+msgstr ""
+
+#: ../nova/network/manager.py:220
+#, python-format
+msgid "IP %(address)s leased to bad mac %(inst_addr)s vs %(mac)s"
+msgstr ""
+
+#: ../nova/network/manager.py:228
+#, python-format
+msgid "IP %s leased that was already deallocated"
+msgstr ""
+
+#: ../nova/network/manager.py:233
+#, python-format
+msgid "Releasing IP %s"
+msgstr ""
+
+#: ../nova/network/manager.py:237
+#, python-format
+msgid "IP %s released that isn't associated"
+msgstr ""
+
+#: ../nova/network/manager.py:241
+#, python-format
+msgid "IP %(address)s released from bad mac %(inst_addr)s vs %(mac)s"
+msgstr ""
+
+#: ../nova/network/manager.py:244
+#, python-format
+msgid "IP %s released that was not leased"
+msgstr ""
+
+#: ../nova/network/manager.py:519
+msgid ""
+"The sum between the number of networks and the vlan start cannot be greater "
+"than 4094"
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:57
+#, python-format
+msgid "Introducing %s..."
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:74
+#, python-format
+msgid "Introduced %(label)s as %(sr_ref)s."
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:78
+msgid "Unable to create Storage Repository"
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:90
+#, python-format
+msgid "Unable to find SR from VBD %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:96
+#, python-format
+msgid "Forgetting SR %s ... "
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:101
+#, python-format
+msgid "Ignoring exception %(exc)s when getting PBDs for %(sr_ref)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:107
+#, python-format
+msgid "Ignoring exception %(exc)s when unplugging PBD %(pbd)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:111
+#, python-format
+msgid "Forgetting SR %s done."
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:113
+#, python-format
+msgid "Ignoring exception %(exc)s when forgetting SR %(sr_ref)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:123
+#, python-format
+msgid "Unable to introduce VDI on SR %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:128
+#, python-format
+msgid "Unable to get record of VDI %s on"
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:146
+#, python-format
+msgid "Unable to introduce VDI for SR %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:175
+#, python-format
+msgid "Unable to obtain target information %(device_path)s, %(mountpoint)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:197
+#, python-format
+msgid "Mountpoint cannot be translated: %s"
+msgstr ""
+
+#: ../nova/objectstore/image.py:262
+#, python-format
+msgid "Failed to decrypt private key: %s"
+msgstr ""
+
+#: ../nova/objectstore/image.py:269
+#, python-format
+msgid "Failed to decrypt initialization vector: %s"
+msgstr ""
+
+#: ../nova/objectstore/image.py:277
+#, python-format
+msgid "Failed to decrypt image file %(image_file)s: %(err)s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:106
+#, python-format
+msgid "Unknown S3 value type %r"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:137
+msgid "Authenticated request"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:182
+msgid "List of buckets requested"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:209
+#, python-format
+msgid "List keys for bucket %s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:217
+#, python-format
+msgid "Unauthorized attempt to access bucket %s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:235
+#, python-format
+msgid "Creating bucket %s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:245
+#, python-format
+msgid "Deleting bucket %s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:249
+#, python-format
+msgid "Unauthorized attempt to delete bucket %s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:273
+#, python-format
+msgid "Getting object: %(bname)s / %(nm)s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:276
+#, python-format
+msgid "Unauthorized attempt to get object %(nm)s from bucket %(bname)s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:296
+#, python-format
+msgid "Putting object: %(bname)s / %(nm)s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:299
+#, python-format
+msgid "Unauthorized attempt to upload object %(nm)s to bucket %(bname)s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:318
+#, python-format
+msgid "Deleting object: %(bname)s / %(nm)s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:322
+#, python-format
+msgid "Unauthorized attempt to delete object %(nm)s from bucket %(bname)s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:396
+#, python-format
+msgid "Not authorized to upload image: invalid directory %s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:404
+#, python-format
+msgid "Not authorized to upload image: unauthorized bucket %s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:409
+#, python-format
+msgid "Starting image upload: %s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:423
+#, python-format
+msgid "Not authorized to update attributes of image %s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:431
+#, python-format
+msgid "Toggling publicity flag of image %(image_id)s %(newstatus)r"
+msgstr ""
+
+#. other attributes imply update
+#: ../nova/objectstore/handler.py:436
+#, python-format
+msgid "Updating user fields on image %s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:450
+#, python-format
+msgid "Unauthorized attempt to delete image %s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:455
+#, python-format
+msgid "Deleted image: %s"
+msgstr ""
+
+#: ../nova/auth/manager.py:259
+#, python-format
+msgid "Looking up user: %r"
+msgstr ""
+
+#: ../nova/auth/manager.py:263
+#, python-format
+msgid "Failed authorization for access key %s"
+msgstr ""
+
+#: ../nova/auth/manager.py:264
+#, python-format
+msgid "No user found for access key %s"
+msgstr ""
+
+#: ../nova/auth/manager.py:270
+#, python-format
+msgid "Using project name = user name (%s)"
+msgstr ""
+
+#: ../nova/auth/manager.py:277
+#, python-format
+msgid "failed authorization: no project named %(pjid)s (user=%(uname)s)"
+msgstr ""
+
+#: ../nova/auth/manager.py:279
+#, python-format
+msgid "No project called %s could be found"
+msgstr ""
+
+#: ../nova/auth/manager.py:287
+#, python-format
+msgid ""
+"Failed authorization: user %(uname)s not admin and not member of project "
+"%(pjname)s"
+msgstr ""
+
+#: ../nova/auth/manager.py:289
+#, python-format
+msgid "User %(uid)s is not a member of project %(pjid)s"
+msgstr ""
+
+#: ../nova/auth/manager.py:298 ../nova/auth/manager.py:309
+#, python-format
+msgid "Invalid signature for user %s"
+msgstr ""
+
+#: ../nova/auth/manager.py:299 ../nova/auth/manager.py:310
+msgid "Signature does not match"
+msgstr ""
+
+#: ../nova/auth/manager.py:380
+msgid "Must specify project"
+msgstr ""
+
+#: ../nova/auth/manager.py:414
+#, python-format
+msgid "The %s role can not be found"
+msgstr ""
+
+#: ../nova/auth/manager.py:416
+#, python-format
+msgid "The %s role is global only"
+msgstr ""
+
+#: ../nova/auth/manager.py:420
+#, python-format
+msgid "Adding role %(role)s to user %(uid)s in project %(pid)s"
+msgstr ""
+
+#: ../nova/auth/manager.py:423
+#, python-format
+msgid "Adding sitewide role %(role)s to user %(uid)s"
+msgstr ""
+
+#: ../nova/auth/manager.py:448
+#, python-format
+msgid "Removing role %(role)s from user %(uid)s on project %(pid)s"
+msgstr ""
+
+#: ../nova/auth/manager.py:451
+#, python-format
+msgid "Removing sitewide role %(role)s from user %(uid)s"
+msgstr ""
+
+#: ../nova/auth/manager.py:515
+#, python-format
+msgid "Created project %(name)s with manager %(manager_user)s"
+msgstr ""
+
+#: ../nova/auth/manager.py:533
+#, python-format
+msgid "modifying project %s"
+msgstr ""
+
+#: ../nova/auth/manager.py:545
+#, python-format
+msgid "Adding user %(uid)s to project %(pid)s"
+msgstr ""
+
+#: ../nova/auth/manager.py:566
+#, python-format
+msgid "Remove user %(uid)s from project %(pid)s"
+msgstr ""
+
+#: ../nova/auth/manager.py:592
+#, python-format
+msgid "Deleting project %s"
+msgstr ""
+
+#: ../nova/auth/manager.py:650
+#, python-format
+msgid "Created user %(rvname)s (admin: %(rvadmin)r)"
+msgstr ""
+
+#: ../nova/auth/manager.py:659
+#, python-format
+msgid "Deleting user %s"
+msgstr ""
+
+#: ../nova/auth/manager.py:669
+#, python-format
+msgid "Access Key change for user %s"
+msgstr ""
+
+#: ../nova/auth/manager.py:671
+#, python-format
+msgid "Secret Key change for user %s"
+msgstr ""
+
+#: ../nova/auth/manager.py:673
+#, python-format
+msgid "Admin status set to %(admin)r for user %(uid)s"
+msgstr ""
+
+#: ../nova/auth/manager.py:722
+#, python-format
+msgid "No vpn data for project %s"
+msgstr ""
+
+#: ../nova/service.py:161
+#, python-format
+msgid "Starting %(topic)s node (version %(vcs_string)s)"
+msgstr ""
+
+#: ../nova/service.py:174
+msgid "Service killed that has no database entry"
+msgstr ""
+
+#: ../nova/service.py:195
+msgid "The service database object disappeared, Recreating it."
+msgstr ""
+
+#: ../nova/service.py:207
+msgid "Recovered model server connection!"
+msgstr ""
+
+#: ../nova/service.py:213
+msgid "model server went away"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:174
+#, python-format
+msgid "LDAP user %s already exists"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:205
+#, python-format
+msgid "LDAP object for %s doesn't exist"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:348
+#, python-format
+msgid "User %s doesn't exist"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:472
+#, python-format
+msgid "Group can't be created because group %s already exists"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:478
+#, python-format
+msgid "Group can't be created because user %s doesn't exist"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:495
+#, python-format
+msgid "User %s can't be searched in group because the user doesn't exist"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:507
+#, python-format
+msgid "User %s can't be added to the group because the user doesn't exist"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:510 ../nova/auth/ldapdriver.py:521
+#, python-format
+msgid "The group at dn %s doesn't exist"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:513
+#, python-format
+msgid "User %(uid)s is already a member of the group %(group_dn)s"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:524
+#, python-format
+msgid ""
+"User %s can't be removed from the group because the user doesn't exist"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:528
+#, python-format
+msgid "User %s is not a member of the group"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:542
+#, python-format
+msgid ""
+"Attempted to remove the last member of a group. Deleting the group at %s "
+"instead."
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:549
+#, python-format
+msgid "User %s can't be removed from all because the user doesn't exist"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:564
+#, python-format
+msgid "Group at dn %s doesn't exist"
+msgstr ""
+
+#: ../nova/virt/xenapi/network_utils.py:40
+#, python-format
+msgid "Found non-unique network for bridge %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/network_utils.py:43
+#, python-format
+msgid "Found no network for bridge %s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:97
+#, python-format
+msgid "Creating new user: %s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:105
+#, python-format
+msgid "Deleting user: %s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:127
+#, python-format
+msgid "Adding role %(role)s to user %(user)s for project %(project)s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:131
+#, python-format
+msgid "Adding sitewide role %(role)s to user %(user)s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:137
+#, python-format
+msgid "Removing role %(role)s from user %(user)s for project %(project)s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:141
+#, python-format
+msgid "Removing sitewide role %(role)s from user %(user)s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:146 ../nova/api/ec2/admin.py:223
+msgid "operation must be add or remove"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:159
+#, python-format
+msgid "Getting x509 for user: %(name)s on project: %(project)s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:177
+#, python-format
+msgid "Create project %(name)s managed by %(manager_user)s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:190
+#, python-format
+msgid "Modify project: %(name)s managed by %(manager_user)s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:200
+#, python-format
+msgid "Delete project: %s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:214
+#, python-format
+msgid "Adding user %(user)s to project %(project)s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:218
+#, python-format
+msgid "Removing user %(user)s from project %(project)s"
+msgstr ""
+
+#, python-format
+#~ msgid "AMQP server on %s:%d is unreachable. Trying again in %d seconds."
+#~ msgstr ""
+#~ "Hindi makita o maabot ang AMQP server sa %s:%d. Muling subukan sa %d segundo."
diff --git a/po/uk.po b/po/uk.po
index d28860c9b..bbd831de9 100644
--- a/po/uk.po
+++ b/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-03-19 06:19+0000\n"
-"X-Generator: Launchpad (build 12559)\n"
+"X-Launchpad-Export-Date: 2011-07-23 05:12+0000\n"
+"X-Generator: Launchpad (build 13405)\n"
#: ../nova/scheduler/chance.py:37 ../nova/scheduler/zone.py:55
#: ../nova/scheduler/simple.py:75 ../nova/scheduler/simple.py:110
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 9690356f5..c3d292a93 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.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-04-07 05:01+0000\n"
-"Last-Translator: ben <Unknown>\n"
+"PO-Revision-Date: 2011-06-14 14:44+0000\n"
+"Last-Translator: chong <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-04-08 05:28+0000\n"
-"X-Generator: Launchpad (build 12735)\n"
+"X-Launchpad-Export-Date: 2011-07-23 05:12+0000\n"
+"X-Generator: Launchpad (build 13405)\n"
#: ../nova/twistd.py:266
#, python-format
@@ -26,7 +26,7 @@ msgstr "å¯åЍ %s 中"
#: ../nova/scheduler/simple.py:75 ../nova/scheduler/simple.py:110
#: ../nova/scheduler/simple.py:122
msgid "No hosts found"
-msgstr "未找到主机"
+msgstr "没有找到主机"
#: ../nova/exception.py:33
msgid "Unexpected error while running command."
@@ -41,6 +41,11 @@ msgid ""
"Stdout: %(stdout)r\n"
"Stderr: %(stderr)r"
msgstr ""
+"%(description)s\n"
+"命令: %(cmd)s\n"
+"退出代ç : %(exit_code)s\n"
+"标准输出: %(stdout)r\n"
+"标准出错: %(stderr)r"
#: ../nova/exception.py:107
msgid "DB exception wrapped"
@@ -309,17 +314,17 @@ msgstr ""
#: ../nova/compute/manager.py:233 ../nova/tests/test_cloud.py:286
#, python-format
msgid "Terminating instance %s"
-msgstr ""
+msgstr "正在结æŸå®žä¾‹ %s"
#: ../nova/compute/manager.py:255
#, python-format
msgid "Deallocating address %s"
-msgstr ""
+msgstr "å–æ¶ˆåˆ†é…åœ°å€ %s"
#: ../nova/compute/manager.py:268
#, python-format
msgid "trying to destroy already destroyed instance: %s"
-msgstr ""
+msgstr "å°è¯•销æ¯å·²ç»é”€æ¯çš„实例: %s"
#: ../nova/compute/manager.py:282
#, python-format
@@ -331,12 +336,12 @@ msgstr "é‡å¯è™šæ‹Ÿæœº %s"
msgid ""
"trying to reboot a non-running instance: %(instance_id)s (state: %(state)s "
"expected: %(running)s)"
-msgstr ""
+msgstr "å°è¯•é‡å¯æ²¡æœ‰åœ¨è¿è¡Œä¸­å®žä¾‹: %(instance_id)s (状æ€: %(state)s 预料: %(running)s)"
#: ../nova/compute/manager.py:311
#, python-format
msgid "instance %s: snapshotting"
-msgstr ""
+msgstr "实例 %s: 快照中"
#: ../nova/compute/manager.py:316
#, python-format
@@ -351,6 +356,8 @@ msgid ""
"trying to reset the password on a non-running instance: %(instance_id)s "
"(state: %(instance_state)s expected: %(expected_state)s)"
msgstr ""
+"å°è¯•对没有在è¿è¡Œçš„实例é‡ç½®å¯†ç : %(instance_id)s (状æ€: %(instance_state)s 预料: "
+"%(expected_state)s)"
#: ../nova/compute/manager.py:335
#, python-format
diff --git a/po/zh_TW.po b/po/zh_TW.po
new file mode 100644
index 000000000..ad14c0e32
--- /dev/null
+++ b/po/zh_TW.po
@@ -0,0 +1,2848 @@
+# Chinese (Traditional) translation for nova
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the nova package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+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-25 07:14+0000\n"
+"Last-Translator: Hugo Kou <Unknown>\n"
+"Language-Team: Chinese (Traditional) <zh_TW@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"
+
+#: ../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 "找ä¸åˆ°ä¸»æ©Ÿ"
+
+#: ../nova/exception.py:33
+msgid "Unexpected error while running command."
+msgstr "éžé æœŸçš„執行錯誤"
+
+#: ../nova/exception.py:36
+#, python-format
+msgid ""
+"%(description)s\n"
+"Command: %(cmd)s\n"
+"Exit code: %(exit_code)s\n"
+"Stdout: %(stdout)r\n"
+"Stderr: %(stderr)r"
+msgstr ""
+
+#: ../nova/exception.py:107
+msgid "DB exception wrapped"
+msgstr ""
+
+#. exc_type, exc_value, exc_traceback = sys.exc_info()
+#: ../nova/exception.py:120
+msgid "Uncaught exception"
+msgstr ""
+
+#: ../nova/volume/api.py:45
+#, python-format
+msgid "Quota exceeeded for %(pid)s, tried to create %(size)sG volume"
+msgstr ""
+
+#: ../nova/volume/api.py:47
+#, python-format
+msgid "Volume quota exceeded. You cannot create a volume of size %sG"
+msgstr "Volume è¶…éŽé™åˆ¶ã€‚無法創建 volume å¤§å° %sG"
+
+#: ../nova/volume/api.py:71 ../nova/volume/api.py:96
+msgid "Volume status must be available"
+msgstr "Volume 狀態需è¦å¯è¢«ä½¿ç”¨"
+
+#: ../nova/volume/api.py:98
+msgid "Volume is already attached"
+msgstr "Volume 已掛載"
+
+#: ../nova/volume/api.py:104
+msgid "Volume is already detached"
+msgstr "Volume 已經å¸è¼‰"
+
+#: ../nova/api/openstack/servers.py:72
+msgid "Failed to read private ip"
+msgstr "讀å–private ip 失敗"
+
+#: ../nova/api/openstack/servers.py:79
+msgid "Failed to read public ip(s)"
+msgstr "讀å–public ip 失敗"
+
+#: ../nova/api/openstack/servers.py:152
+#, python-format
+msgid "%(param)s property not found for image %(_image_id)s"
+msgstr ""
+
+#: ../nova/api/openstack/servers.py:168
+msgid "No keypairs defined"
+msgstr "沒有定義的金鑰(keypair)é…å°"
+
+#: ../nova/api/openstack/servers.py:238
+#, python-format
+msgid "Compute.api::lock %s"
+msgstr ""
+
+#: ../nova/api/openstack/servers.py:253
+#, python-format
+msgid "Compute.api::unlock %s"
+msgstr ""
+
+#: ../nova/api/openstack/servers.py:267
+#, python-format
+msgid "Compute.api::get_lock %s"
+msgstr ""
+
+#: ../nova/api/openstack/servers.py:281
+#, python-format
+msgid "Compute.api::reset_network %s"
+msgstr ""
+
+#: ../nova/api/openstack/servers.py:292
+#, python-format
+msgid "Compute.api::pause %s"
+msgstr ""
+
+#: ../nova/api/openstack/servers.py:303
+#, python-format
+msgid "Compute.api::unpause %s"
+msgstr ""
+
+#: ../nova/api/openstack/servers.py:314
+#, python-format
+msgid "compute.api::suspend %s"
+msgstr ""
+
+#: ../nova/api/openstack/servers.py:325
+#, python-format
+msgid "compute.api::resume %s"
+msgstr ""
+
+#: ../nova/twistd.py:157
+msgid "Wrong number of arguments."
+msgstr ""
+
+#: ../nova/twistd.py:209
+#, python-format
+msgid "pidfile %s does not exist. Daemon not running?\n"
+msgstr "pidfile %s ä¸å­˜åœ¨. Daemon未啟動?\n"
+
+#: ../nova/twistd.py:221
+msgid "No such process"
+msgstr "沒有此一程åº"
+
+#: ../nova/twistd.py:230 ../nova/service.py:224
+#, python-format
+msgid "Serving %s"
+msgstr ""
+
+#: ../nova/twistd.py:262 ../nova/service.py:225
+msgid "Full set of FLAGS:"
+msgstr ""
+
+#: ../nova/twistd.py:266
+#, python-format
+msgid "Starting %s"
+msgstr "正在啟動 %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 "找ä¸åˆ°è™›æ“¬æ©Ÿå™¨ %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 "掛載_Volume: %(instance_name)s, %(device_path)s, %(mountpoint)s"
+
+#: ../nova/virt/xenapi/volumeops.py:69
+#, python-format
+msgid "Unable to create VDI on SR %(sr_ref)s for instance %(instance_name)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/volumeops.py:80
+#, python-format
+msgid "Unable to use SR %(sr_ref)s for instance %(instance_name)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/volumeops.py:91
+#, python-format
+msgid "Unable to attach volume to instance %s"
+msgstr "無法掛載Volume 到虛擬機器 %s"
+
+#: ../nova/virt/xenapi/volumeops.py:93
+#, python-format
+msgid "Mountpoint %(mountpoint)s attached to instance %(instance_name)s"
+msgstr "掛載點 %(mountpoint)s 掛載到虛擬機器 %(instance_name)s"
+
+#. Detach VBD from VM
+#: ../nova/virt/xenapi/volumeops.py:104
+#, python-format
+msgid "Detach_volume: %(instance_name)s, %(mountpoint)s"
+msgstr "å¸è¼‰_Volume: %(instance_name)s, %(mountpoint)s"
+
+#: ../nova/virt/xenapi/volumeops.py:112
+#, python-format
+msgid "Unable to locate volume %s"
+msgstr "找ä¸åˆ°Volume %s"
+
+#: ../nova/virt/xenapi/volumeops.py:120
+#, python-format
+msgid "Unable to detach volume %s"
+msgstr "無法å¸è¼‰ Volume %s"
+
+#: ../nova/virt/xenapi/volumeops.py:127
+#, python-format
+msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
+msgstr "掛載點 %(mountpoint)s 從虛擬機器 %(instance_name)s å¸è¼‰"
+
+#: ../nova/compute/instance_types.py:41
+#, python-format
+msgid "Unknown instance type: %s"
+msgstr "æœªçŸ¥çš„è™›æ“¬æ©Ÿå™¨è¦æ ¼: %s"
+
+#: ../nova/crypto.py:46
+msgid "Filename of root CA"
+msgstr ""
+
+#: ../nova/crypto.py:49
+msgid "Filename of private key"
+msgstr "Private key ç§é‘°æª”案å稱"
+
+#: ../nova/crypto.py:51
+msgid "Filename of root Certificate Revokation List"
+msgstr ""
+
+#: ../nova/crypto.py:53
+msgid "Where we keep our keys"
+msgstr ""
+
+#: ../nova/crypto.py:55
+msgid "Where we keep our root CA"
+msgstr ""
+
+#: ../nova/crypto.py:57
+msgid "Should we use a CA for each project?"
+msgstr ""
+
+#: ../nova/crypto.py:61
+#, python-format
+msgid "Subject for certificate for users, %s for project, user, timestamp"
+msgstr ""
+
+#: ../nova/crypto.py:66
+#, python-format
+msgid "Subject for certificate for projects, %s for project, timestamp"
+msgstr ""
+
+#: ../nova/crypto.py:71
+#, python-format
+msgid "Subject for certificate for vpns, %s for project, timestamp"
+msgstr ""
+
+#: ../nova/crypto.py:258
+#, python-format
+msgid "Flags path: %s"
+msgstr ""
+
+#: ../nova/scheduler/manager.py:69
+#, python-format
+msgid "Casting to %(topic)s %(host)s for %(method)s"
+msgstr ""
+
+#: ../nova/compute/manager.py:78
+#, python-format
+msgid "check_instance_lock: decorating: |%s|"
+msgstr ""
+
+#: ../nova/compute/manager.py:80
+#, python-format
+msgid ""
+"check_instance_lock: arguments: |%(self)s| |%(context)s| |%(instance_id)s|"
+msgstr ""
+
+#: ../nova/compute/manager.py:84
+#, python-format
+msgid "check_instance_lock: locked: |%s|"
+msgstr ""
+
+#: ../nova/compute/manager.py:86
+#, python-format
+msgid "check_instance_lock: admin: |%s|"
+msgstr ""
+
+#: ../nova/compute/manager.py:91
+#, python-format
+msgid "check_instance_lock: executing: |%s|"
+msgstr ""
+
+#: ../nova/compute/manager.py:95
+#, python-format
+msgid "check_instance_lock: not executing |%s|"
+msgstr ""
+
+#: ../nova/compute/manager.py:179
+msgid "Instance has already been created"
+msgstr ""
+
+#: ../nova/compute/manager.py:180
+#, python-format
+msgid "instance %s: starting..."
+msgstr ""
+
+#. pylint: disable=W0702
+#: ../nova/compute/manager.py:219
+#, python-format
+msgid "instance %s: Failed to spawn"
+msgstr ""
+
+#: ../nova/compute/manager.py:233 ../nova/tests/test_cloud.py:286
+#, python-format
+msgid "Terminating instance %s"
+msgstr ""
+
+#: ../nova/compute/manager.py:255
+#, python-format
+msgid "Deallocating address %s"
+msgstr ""
+
+#: ../nova/compute/manager.py:268
+#, python-format
+msgid "trying to destroy already destroyed instance: %s"
+msgstr ""
+
+#: ../nova/compute/manager.py:282
+#, python-format
+msgid "Rebooting instance %s"
+msgstr ""
+
+#: ../nova/compute/manager.py:287
+#, python-format
+msgid ""
+"trying to reboot a non-running instance: %(instance_id)s (state: %(state)s "
+"expected: %(running)s)"
+msgstr ""
+
+#: ../nova/compute/manager.py:311
+#, python-format
+msgid "instance %s: snapshotting"
+msgstr ""
+
+#: ../nova/compute/manager.py:316
+#, python-format
+msgid ""
+"trying to snapshot a non-running instance: %(instance_id)s (state: %(state)s "
+"expected: %(running)s)"
+msgstr ""
+
+#: ../nova/compute/manager.py:332
+#, python-format
+msgid ""
+"trying to reset the password on a non-running instance: %(instance_id)s "
+"(state: %(instance_state)s expected: %(expected_state)s)"
+msgstr ""
+
+#: ../nova/compute/manager.py:335
+#, python-format
+msgid "instance %s: setting admin password"
+msgstr ""
+
+#: ../nova/compute/manager.py:353
+#, python-format
+msgid ""
+"trying to inject a file into a non-running instance: %(instance_id)s (state: "
+"%(instance_state)s expected: %(expected_state)s)"
+msgstr ""
+
+#: ../nova/compute/manager.py:362
+#, python-format
+msgid "instance %(nm)s: injecting file to %(plain_path)s"
+msgstr ""
+
+#: ../nova/compute/manager.py:372
+#, python-format
+msgid "instance %s: rescuing"
+msgstr ""
+
+#: ../nova/compute/manager.py:387
+#, python-format
+msgid "instance %s: unrescuing"
+msgstr ""
+
+#: ../nova/compute/manager.py:406
+#, python-format
+msgid "instance %s: pausing"
+msgstr ""
+
+#: ../nova/compute/manager.py:423
+#, python-format
+msgid "instance %s: unpausing"
+msgstr ""
+
+#: ../nova/compute/manager.py:440
+#, python-format
+msgid "instance %s: retrieving diagnostics"
+msgstr ""
+
+#: ../nova/compute/manager.py:453
+#, python-format
+msgid "instance %s: suspending"
+msgstr ""
+
+#: ../nova/compute/manager.py:472
+#, python-format
+msgid "instance %s: resuming"
+msgstr ""
+
+#: ../nova/compute/manager.py:491
+#, python-format
+msgid "instance %s: locking"
+msgstr ""
+
+#: ../nova/compute/manager.py:503
+#, python-format
+msgid "instance %s: unlocking"
+msgstr ""
+
+#: ../nova/compute/manager.py:513
+#, python-format
+msgid "instance %s: getting locked state"
+msgstr ""
+
+#: ../nova/compute/manager.py:526
+#, python-format
+msgid "instance %s: reset network"
+msgstr ""
+
+#: ../nova/compute/manager.py:535 ../nova/api/ec2/cloud.py:515
+#, python-format
+msgid "Get console output for instance %s"
+msgstr ""
+
+#: ../nova/compute/manager.py:543
+#, python-format
+msgid "instance %s: getting ajax console"
+msgstr ""
+
+#: ../nova/compute/manager.py:553
+#, python-format
+msgid ""
+"instance %(instance_id)s: attaching volume %(volume_id)s to %(mountpoint)s"
+msgstr ""
+
+#. pylint: disable=W0702
+#. NOTE(vish): The inline callback eats the exception info so we
+#. log the traceback here and reraise the same
+#. ecxception below.
+#: ../nova/compute/manager.py:569
+#, python-format
+msgid "instance %(instance_id)s: attach failed %(mountpoint)s, removing"
+msgstr ""
+
+#: ../nova/compute/manager.py:585
+#, python-format
+msgid ""
+"Detach volume %(volume_id)s from mountpoint %(mp)s on instance "
+"%(instance_id)s"
+msgstr ""
+
+#: ../nova/compute/manager.py:588
+#, python-format
+msgid "Detaching volume from unknown instance %s"
+msgstr ""
+
+#: ../nova/scheduler/simple.py:53
+#, python-format
+msgid "Host %s is not alive"
+msgstr ""
+
+#: ../nova/scheduler/simple.py:65
+msgid "All hosts have too many cores"
+msgstr ""
+
+#: ../nova/scheduler/simple.py:87
+#, python-format
+msgid "Host %s not available"
+msgstr ""
+
+#: ../nova/scheduler/simple.py:99
+msgid "All hosts have too many gigabytes"
+msgstr ""
+
+#: ../nova/scheduler/simple.py:119
+msgid "All hosts have too many networks"
+msgstr ""
+
+#: ../nova/volume/manager.py:85
+#, python-format
+msgid "Re-exporting %s volumes"
+msgstr ""
+
+#: ../nova/volume/manager.py:90
+#, python-format
+msgid "volume %s: skipping export"
+msgstr ""
+
+#: ../nova/volume/manager.py:96
+#, python-format
+msgid "volume %s: creating"
+msgstr ""
+
+#: ../nova/volume/manager.py:108
+#, python-format
+msgid "volume %(vol_name)s: creating lv of size %(vol_size)sG"
+msgstr ""
+
+#: ../nova/volume/manager.py:112
+#, python-format
+msgid "volume %s: creating export"
+msgstr ""
+
+#: ../nova/volume/manager.py:123
+#, python-format
+msgid "volume %s: created successfully"
+msgstr ""
+
+#: ../nova/volume/manager.py:131
+msgid "Volume is still attached"
+msgstr ""
+
+#: ../nova/volume/manager.py:133
+msgid "Volume is not local to this node"
+msgstr ""
+
+#: ../nova/volume/manager.py:136
+#, python-format
+msgid "volume %s: removing export"
+msgstr ""
+
+#: ../nova/volume/manager.py:138
+#, python-format
+msgid "volume %s: deleting"
+msgstr ""
+
+#: ../nova/volume/manager.py:147
+#, python-format
+msgid "volume %s: deleted successfully"
+msgstr ""
+
+#: ../nova/virt/xenapi/fake.py:74
+#, python-format
+msgid "%(text)s: _db_content => %(content)s"
+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 ""
+
+#: ../nova/virt/xenapi/fake.py:306
+#, python-format
+msgid "xenapi.fake does not have an implementation for %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/fake.py:341
+#, python-format
+msgid "Calling %(localname)s %(impl)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/fake.py:346
+#, python-format
+msgid "Calling getter %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/fake.py:406
+#, python-format
+msgid ""
+"xenapi.fake does not have an implementation for %s or it has been called "
+"with the wrong number of arguments"
+msgstr ""
+
+#: ../nova/tests/test_cloud.py:256
+msgid "Can't test instances without a real virtual env."
+msgstr ""
+
+#: ../nova/tests/test_cloud.py:268
+#, python-format
+msgid "Need to watch instance %s until it's running..."
+msgstr ""
+
+#: ../nova/virt/connection.py:73
+msgid "Failed to open connection to the hypervisor"
+msgstr ""
+
+#: ../nova/network/linux_net.py:187
+#, python-format
+msgid "Starting VLAN inteface %s"
+msgstr ""
+
+#: ../nova/network/linux_net.py:208
+#, python-format
+msgid "Starting Bridge interface for %s"
+msgstr ""
+
+#. pylint: disable=W0703
+#: ../nova/network/linux_net.py:314
+#, python-format
+msgid "Hupping dnsmasq threw %s"
+msgstr ""
+
+#: ../nova/network/linux_net.py:316
+#, python-format
+msgid "Pid %d is stale, relaunching dnsmasq"
+msgstr ""
+
+#. pylint: disable=W0703
+#: ../nova/network/linux_net.py:358
+#, python-format
+msgid "killing radvd threw %s"
+msgstr ""
+
+#: ../nova/network/linux_net.py:360
+#, python-format
+msgid "Pid %d is stale, relaunching radvd"
+msgstr ""
+
+#. pylint: disable=W0703
+#: ../nova/network/linux_net.py:449
+#, python-format
+msgid "Killing dnsmasq threw %s"
+msgstr ""
+
+#: ../nova/utils.py:58
+#, python-format
+msgid "Inner Exception: %s"
+msgstr ""
+
+#: ../nova/utils.py:59
+#, python-format
+msgid "Class %s cannot be found"
+msgstr ""
+
+#: ../nova/utils.py:118
+#, python-format
+msgid "Fetching %s"
+msgstr ""
+
+#: ../nova/utils.py:130
+#, python-format
+msgid "Running cmd (subprocess): %s"
+msgstr ""
+
+#: ../nova/utils.py:143 ../nova/utils.py:183
+#, python-format
+msgid "Result was %s"
+msgstr ""
+
+#: ../nova/utils.py:159
+#, python-format
+msgid "Running cmd (SSH): %s"
+msgstr ""
+
+#: ../nova/utils.py:217
+#, python-format
+msgid "debug in callback: %s"
+msgstr ""
+
+#: ../nova/utils.py:222
+#, python-format
+msgid "Running %s"
+msgstr ""
+
+#: ../nova/utils.py:262
+#, python-format
+msgid "Link Local address is not found.:%s"
+msgstr ""
+
+#: ../nova/utils.py:265
+#, python-format
+msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
+msgstr ""
+
+#: ../nova/utils.py:363
+#, python-format
+msgid "Invalid backend: %s"
+msgstr ""
+
+#: ../nova/utils.py:374
+#, python-format
+msgid "backend %s"
+msgstr ""
+
+#: ../nova/fakerabbit.py:49
+#, python-format
+msgid "(%(nm)s) publish (key: %(routing_key)s) %(message)s"
+msgstr ""
+
+#: ../nova/fakerabbit.py:54
+#, python-format
+msgid "Publishing to route %s"
+msgstr ""
+
+#: ../nova/fakerabbit.py:84
+#, python-format
+msgid "Declaring queue %s"
+msgstr ""
+
+#: ../nova/fakerabbit.py:90
+#, python-format
+msgid "Declaring exchange %s"
+msgstr ""
+
+#: ../nova/fakerabbit.py:96
+#, python-format
+msgid "Binding %(queue)s to %(exchange)s with key %(routing_key)s"
+msgstr ""
+
+#: ../nova/fakerabbit.py:121
+#, python-format
+msgid "Getting from %(queue)s: %(message)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:135 ../nova/virt/hyperv.py:171
+#, python-format
+msgid "Created VM %s..."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:138
+#, python-format
+msgid "Created VM %(instance_name)s as %(vm_ref)s."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:168
+#, python-format
+msgid "Creating VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:171
+#, python-format
+msgid "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:187
+#, python-format
+msgid "VBD not found in instance %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:197
+#, python-format
+msgid "Unable to unplug VBD %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:209
+#, python-format
+msgid "Unable to destroy VBD %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:224
+#, python-format
+msgid "Creating VIF for VM %(vm_ref)s, network %(network_ref)s."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:227
+#, python-format
+msgid "Created VIF %(vif_ref)s for VM %(vm_ref)s, network %(network_ref)s."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:246
+#, python-format
+msgid ""
+"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s) on "
+"%(sr_ref)s."
+msgstr ""
+
+#. TODO(sirp): Add quiesce and VSS locking support when Windows support
+#. is added
+#: ../nova/virt/xenapi/vm_utils.py:258
+#, python-format
+msgid "Snapshotting VM %(vm_ref)s with label '%(label)s'..."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:272
+#, python-format
+msgid "Created snapshot %(template_vm_ref)s from VM %(vm_ref)s."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:286
+#, python-format
+msgid "Asking xapi to upload %(vdi_uuids)s as ID %(image_id)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:327
+#, python-format
+msgid "Size for image %(image)s:%(virtual_size)d"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:332
+#, python-format
+msgid "Glance image %s"
+msgstr ""
+
+#. we need to invoke a plugin for copying VDI's
+#. content into proper path
+#: ../nova/virt/xenapi/vm_utils.py:342
+#, python-format
+msgid "Copying VDI %s to /boot/guest on dom0"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:352
+#, python-format
+msgid "Kernel/Ramdisk VDI %s destroyed"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:361
+#, python-format
+msgid "Asking xapi to fetch %(url)s as %(access)s"
+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 ""
+
+#: ../nova/virt/xenapi/vm_utils.py:397
+#, python-format
+msgid "PV Kernel in VDI:%s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:405
+#, python-format
+msgid "Running pygrub against %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:411
+#, python-format
+msgid "Found Xen kernel %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:413
+msgid "No Xen kernel found. Booting HVM."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:425 ../nova/virt/hyperv.py:431
+#, python-format
+msgid "duplicate name found: %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:442
+#, python-format
+msgid "VDI %s is still available"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:463
+#, python-format
+msgid "(VM_UTILS) xenserver vm state -> |%s|"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:465
+#, python-format
+msgid "(VM_UTILS) xenapi power_state -> |%s|"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:525
+#, python-format
+msgid "VHD %(vdi_uuid)s has parent %(parent_ref)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:542
+#, python-format
+msgid "Re-scanning SR %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:567
+#, python-format
+msgid ""
+"VHD coalesce attempts exceeded (%(counter)d > %(max_attempts)d), giving up..."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:574
+#, python-format
+msgid ""
+"Parent %(parent_uuid)s doesn't match original parent "
+"%(original_parent_uuid)s, waiting for coalesce..."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:590
+#, python-format
+msgid "No VDIs found for VM %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:594
+#, python-format
+msgid "Unexpected number of VDIs (%(num_vdis)s) found for VM %(vm_ref)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:653
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:188
+#, python-format
+msgid "Creating VBD for VDI %s ... "
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:655
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:190
+#, python-format
+msgid "Creating VBD for VDI %s done."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:657
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:192
+#, python-format
+msgid "Plugging VBD %s ... "
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:659
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:194
+#, python-format
+msgid "Plugging VBD %s done."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:661
+#, python-format
+msgid "VBD %(vbd)s plugged as %(orig_dev)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:664
+#, python-format
+msgid "VBD %(vbd)s plugged into wrong dev, remapping to %(dev)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:668
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:197
+#, python-format
+msgid "Destroying VBD for VDI %s ... "
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:671
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:200
+#, python-format
+msgid "Destroying VBD for VDI %s done."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:683
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:211
+msgid "VBD.unplug successful first time."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:688
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:216
+msgid "VBD.unplug rejected: retrying..."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:692
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:220
+msgid "VBD.unplug successful eventually."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:695
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:223
+#, python-format
+msgid "Ignoring XenAPI.Failure in VBD.unplug: %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:704
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:66
+#, python-format
+msgid "Ignoring XenAPI.Failure %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:735
+#, python-format
+msgid ""
+"Writing partition table %(primary_first)d %(primary_last)d to %(dest)s..."
+msgstr ""
+
+#: ../nova/virt/xenapi/vm_utils.py:747
+#, python-format
+msgid "Writing partition table %s done."
+msgstr ""
+
+#: ../nova/tests/test_rpc.py:89
+#, python-format
+msgid "Nested received %(queue)s, %(value)s"
+msgstr ""
+
+#: ../nova/tests/test_rpc.py:95
+#, python-format
+msgid "Nested return %s"
+msgstr ""
+
+#: ../nova/tests/test_rpc.py:120 ../nova/tests/test_rpc.py:126
+#, python-format
+msgid "Received %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:44
+msgid "Use of empty request context is deprecated"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:133
+#, python-format
+msgid "No service for id %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:251
+#, python-format
+msgid "No service for %(host)s, %(binary)s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:592
+msgid "No fixed ips defined"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:608
+#, python-format
+msgid "No floating ip for address %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:629
+#, python-format
+msgid "No address for instance %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:961
+#, python-format
+msgid "no keypair for user %(user_id)s, name %(name)s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1076 ../nova/db/sqlalchemy/api.py:1156
+#, python-format
+msgid "No network for id %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1086
+msgid "No networks defined"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1115
+#, python-format
+msgid "No network for bridge %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1129 ../nova/db/sqlalchemy/api.py:1142
+#, python-format
+msgid "No network for instance %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1277
+#, python-format
+msgid "Token %s does not exist"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1302
+#, python-format
+msgid "No quota for project_id %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1455 ../nova/db/sqlalchemy/api.py:1501
+#: ../nova/api/ec2/__init__.py:323
+#, python-format
+msgid "Volume %s not found"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1514
+#, python-format
+msgid "No export device found for volume %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1527
+#, python-format
+msgid "No target id found for volume %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1572
+#, python-format
+msgid "No security group with id %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1589
+#, python-format
+msgid "No security group named %(group_name)s for project: %(project_id)s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1682
+#, python-format
+msgid "No secuity group rule with id %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1756
+#, python-format
+msgid "No user for id %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1772
+#, python-format
+msgid "No user for access key %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1834
+#, python-format
+msgid "No project with id %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1979
+#, python-format
+msgid "No console pool with id %(pool_id)s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:1996
+#, python-format
+msgid ""
+"No console pool of type %(console_type)s for compute host %(compute_host)s "
+"on proxy host %(host)s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:2035
+#, python-format
+msgid "No console for instance %(instance_id)s in pool %(pool_id)s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:2057
+#, python-format
+msgid "on instance %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:2058
+#, python-format
+msgid "No console with id %(console_id)s %(idesc)s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/api.py:2078 ../nova/db/sqlalchemy/api.py:2097
+#, python-format
+msgid "No zone with id %(zone_id)s"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:160
+#, python-format
+msgid "Checking state of %s"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:165
+#, python-format
+msgid "Current state of %(name)s was %(state)s."
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:183
+#, python-format
+msgid "Connecting to libvirt: %s"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:196
+msgid "Connection to libvirt broke"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:258
+#, python-format
+msgid "instance %(instance_name)s: deleting instance files %(target)s"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:283
+#, python-format
+msgid "Invalid device path %s"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:313
+#, python-format
+msgid "No disk at %s"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:320
+msgid "Instance snapshotting is not supported for libvirtat this time"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:336
+#, python-format
+msgid "instance %s: rebooted"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:339
+#, python-format
+msgid "_wait_for_reboot failed: %s"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:382
+#, python-format
+msgid "instance %s: rescued"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:385
+#, python-format
+msgid "_wait_for_rescue failed: %s"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:411
+#, python-format
+msgid "instance %s: is running"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:422
+#, python-format
+msgid "instance %s: booted"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:425 ../nova/virt/xenapi/vmops.py:186
+#, python-format
+msgid "instance %s: failed to boot"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:436
+#, python-format
+msgid "virsh said: %r"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:440
+msgid "cool, it's a device"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:448
+#, python-format
+msgid "data: %(data)r, fpath: %(fpath)r"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:456
+#, python-format
+msgid "Contents of file %(fpath)s: %(contents)r"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:489
+msgid "Unable to find an open port"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:563
+#, python-format
+msgid "instance %s: Creating image"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:646
+#, python-format
+msgid "instance %(inst_name)s: injecting key into image %(img_id)s"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:649
+#, python-format
+msgid "instance %(inst_name)s: injecting net into image %(img_id)s"
+msgstr ""
+
+#. This could be a windows image, or a vmdk format disk
+#: ../nova/virt/libvirt_conn.py:657
+#, python-format
+msgid ""
+"instance %(inst_name)s: ignoring error injecting data into image %(img_id)s "
+"(%(e)s)"
+msgstr ""
+
+#. TODO(termie): cache?
+#: ../nova/virt/libvirt_conn.py:665
+#, python-format
+msgid "instance %s: starting toXML method"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:732
+#, python-format
+msgid "instance %s: finished toXML method"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:751
+msgid "diagnostics are not supported for libvirt"
+msgstr ""
+
+#: ../nova/virt/libvirt_conn.py:1225
+#, python-format
+msgid "Attempted to unfilter instance %s which is not filtered"
+msgstr ""
+
+#: ../nova/api/ec2/metadatarequesthandler.py:76
+#, python-format
+msgid "Failed to get metadata for ip: %s"
+msgstr ""
+
+#: ../nova/auth/fakeldap.py:33
+msgid "Attempted to instantiate singleton"
+msgstr ""
+
+#: ../nova/network/api.py:39
+#, python-format
+msgid "Quota exceeeded for %s, tried to allocate address"
+msgstr ""
+
+#: ../nova/network/api.py:42
+msgid "Address quota exceeded. You cannot allocate any more addresses"
+msgstr ""
+
+#: ../nova/tests/test_volume.py:162
+#, python-format
+msgid "Target %s allocated"
+msgstr ""
+
+#: ../nova/virt/images.py:70
+#, python-format
+msgid "Finished retreving %(url)s -- placed in %(path)s"
+msgstr ""
+
+#: ../nova/scheduler/driver.py:66
+msgid "Must implement a fallback schedule"
+msgstr ""
+
+#: ../nova/console/manager.py:70
+msgid "Adding console"
+msgstr ""
+
+#: ../nova/console/manager.py:90
+#, python-format
+msgid "Tried to remove non-existant console %(console_id)s."
+msgstr ""
+
+#: ../nova/api/direct.py:149
+msgid "not available"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:62
+#, python-format
+msgid "The key_pair %s already exists"
+msgstr ""
+
+#. TODO(vish): Do this with M2Crypto instead
+#: ../nova/api/ec2/cloud.py:118
+#, python-format
+msgid "Generating root CA: %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:303
+#, python-format
+msgid "Create key pair %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:311
+#, python-format
+msgid "Delete key pair %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:386
+#, python-format
+msgid "%s is not a valid ipProtocol"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:390
+msgid "Invalid port range"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:421
+#, python-format
+msgid "Revoke security group ingress %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:430 ../nova/api/ec2/cloud.py:459
+msgid "Not enough parameters to build a valid rule."
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:443
+msgid "No rule for the specified parameters."
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:450
+#, python-format
+msgid "Authorize security group ingress %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:464
+#, python-format
+msgid "This rule already exists in group %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:492
+#, python-format
+msgid "Create Security Group %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:495
+#, python-format
+msgid "group %s already exists"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:507
+#, python-format
+msgid "Delete security group %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:584
+#, python-format
+msgid "Create volume of %s GB"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:612
+#, python-format
+msgid "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:629
+#, python-format
+msgid "Detach volume %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:761
+msgid "Allocate address"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:766
+#, python-format
+msgid "Release address %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:771
+#, python-format
+msgid "Associate address %(public_ip)s to instance %(instance_id)s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:780
+#, python-format
+msgid "Disassociate address %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:807
+msgid "Going to start terminating instances"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:815
+#, python-format
+msgid "Reboot instance %r"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:867
+#, python-format
+msgid "De-registering image %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:875
+#, python-format
+msgid "Registered image %(image_location)s with id %(image_id)s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:882 ../nova/api/ec2/cloud.py:900
+#, python-format
+msgid "attribute not supported: %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:890
+#, python-format
+msgid "invalid id: %s"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:903
+msgid "user or group not specified"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:905
+msgid "only group \"all\" is supported"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:907
+msgid "operation_type must be add or remove"
+msgstr ""
+
+#: ../nova/api/ec2/cloud.py:908
+#, python-format
+msgid "Updating image %s publicity"
+msgstr ""
+
+#: ../bin/nova-api.py:52
+#, python-format
+msgid "Using paste.deploy config at: %s"
+msgstr ""
+
+#: ../bin/nova-api.py:57
+#, python-format
+msgid "No paste configuration for app: %s"
+msgstr ""
+
+#: ../bin/nova-api.py:59
+#, python-format
+msgid ""
+"App Config: %(api)s\n"
+"%(config)r"
+msgstr ""
+
+#: ../bin/nova-api.py:64
+#, python-format
+msgid "Running %s API"
+msgstr ""
+
+#: ../bin/nova-api.py:69
+#, python-format
+msgid "No known API applications configured in %s."
+msgstr ""
+
+#: ../bin/nova-api.py:83
+#, python-format
+msgid "Starting nova-api node (version %s)"
+msgstr ""
+
+#: ../bin/nova-api.py:89
+#, python-format
+msgid "No paste configuration found for: %s"
+msgstr ""
+
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:84
+#, python-format
+msgid "Argument %(key)s value %(value)s is too short."
+msgstr ""
+
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:89
+#, python-format
+msgid "Argument %(key)s value %(value)s contains invalid characters."
+msgstr ""
+
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:94
+#, python-format
+msgid "Argument %(key)s value %(value)s starts with a hyphen."
+msgstr ""
+
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:102
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:130
+#, python-format
+msgid "Argument %s is required."
+msgstr ""
+
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:117
+#, python-format
+msgid ""
+"Argument %(key)s may not take value %(value)s. Valid values are ['true', "
+"'false']."
+msgstr ""
+
+#: ../plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py:163
+#, python-format
+msgid ""
+"Created VDI %(vdi_ref)s (%(label)s, %(size)s, %(read_only)s) on %(sr_ref)s."
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:67
+#, python-format
+msgid "Attempted to create non-unique name %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:73
+#, python-format
+msgid "instance %(name)s: not enough free memory"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:148
+#, python-format
+msgid "Starting VM %s..."
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:151
+#, python-format
+msgid "Spawning VM %(instance_name)s created %(vm_ref)s."
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:162
+#, python-format
+msgid "Invalid value for onset_files: '%s'"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:167
+#, python-format
+msgid "Injecting file path: '%s'"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:180
+#, python-format
+msgid "Instance %s: booted"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:232
+#, python-format
+msgid "Instance not present %s"
+msgstr ""
+
+#. TODO(sirp): Add quiesce and VSS locking support when Windows support
+#. is added
+#: ../nova/virt/xenapi/vmops.py:261
+#, python-format
+msgid "Starting snapshot for VM %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:269
+#, python-format
+msgid "Unable to Snapshot %(vm_ref)s: %(exc)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:280
+#, python-format
+msgid "Finished snapshot and upload for VM %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:356
+#, python-format
+msgid "VM %(vm)s already halted, skipping shutdown..."
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:389
+msgid "Removing kernel/ramdisk files"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:399
+msgid "kernel/ramdisk files removed"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:561
+#, python-format
+msgid ""
+"TIMEOUT: The call to %(method)s timed out. VM id=%(instance_id)s; "
+"args=%(strargs)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:564
+#, python-format
+msgid ""
+"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. VM "
+"id=%(instance_id)s; args=%(strargs)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:569
+#, python-format
+msgid ""
+"The call to %(method)s returned an error: %(e)s. VM id=%(instance_id)s; "
+"args=%(strargs)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/vmops.py:760
+#, python-format
+msgid "OpenSSL error: %s"
+msgstr ""
+
+#: ../nova/tests/test_compute.py:148
+#, python-format
+msgid "Running instances: %s"
+msgstr ""
+
+#: ../nova/tests/test_compute.py:154
+#, python-format
+msgid "After terminating instances: %s"
+msgstr ""
+
+#: ../nova/cloudpipe/pipelib.py:45
+msgid "Template for script to run on cloudpipe instance boot"
+msgstr ""
+
+#: ../nova/cloudpipe/pipelib.py:48
+msgid "Network to push into openvpn config"
+msgstr ""
+
+#: ../nova/cloudpipe/pipelib.py:51
+msgid "Netmask to push into openvpn config"
+msgstr ""
+
+#: ../nova/cloudpipe/pipelib.py:97
+#, python-format
+msgid "Launching VPN for %s"
+msgstr ""
+
+#: ../nova/db/sqlalchemy/migration.py:35
+msgid "python-migrate is not installed. Exiting."
+msgstr ""
+
+#: ../nova/image/s3.py:99
+#, python-format
+msgid "Image %s could not be found"
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:121
+msgid "Too many failed authentications."
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:131
+#, python-format
+msgid ""
+"Access key %(access_key)s has had %(failures)d failed authentications and "
+"will be locked out for %(lock_mins)d minutes."
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:169 ../nova/objectstore/handler.py:140
+#, python-format
+msgid "Authentication Failure: %s"
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:182
+#, python-format
+msgid "Authenticated Request For %(uname)s:%(pname)s)"
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:207
+#, python-format
+msgid "action: %s"
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:209
+#, python-format
+msgid "arg: %(key)s\t\tval: %(value)s"
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:281
+#, python-format
+msgid ""
+"Unauthorized request for controller=%(controller)s and action=%(action)s"
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:314
+#, python-format
+msgid "InstanceNotFound raised: %s"
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:320
+#, python-format
+msgid "VolumeNotFound raised: %s"
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:326
+#, python-format
+msgid "NotFound raised: %s"
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:329
+#, python-format
+msgid "ApiError raised: %s"
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:338
+#, python-format
+msgid "Unexpected error raised: %s"
+msgstr ""
+
+#: ../nova/api/ec2/__init__.py:343
+msgid "An unknown error has occurred. Please try your request again."
+msgstr ""
+
+#: ../nova/auth/dbdriver.py:84
+#, python-format
+msgid "User %s already exists"
+msgstr ""
+
+#: ../nova/auth/dbdriver.py:106 ../nova/auth/ldapdriver.py:232
+#, python-format
+msgid "Project can't be created because manager %s doesn't exist"
+msgstr ""
+
+#: ../nova/auth/dbdriver.py:122 ../nova/auth/ldapdriver.py:243
+#, python-format
+msgid "Project can't be created because user %s doesn't exist"
+msgstr ""
+
+#: ../nova/auth/dbdriver.py:135 ../nova/auth/ldapdriver.py:229
+#, python-format
+msgid "Project can't be created because project %s already exists"
+msgstr ""
+
+#: ../nova/auth/dbdriver.py:157 ../nova/auth/ldapdriver.py:268
+#, python-format
+msgid "Project can't be modified because manager %s doesn't exist"
+msgstr ""
+
+#: ../nova/auth/dbdriver.py:245
+#, python-format
+msgid "User \"%s\" not found"
+msgstr ""
+
+#: ../nova/auth/dbdriver.py:248
+#, python-format
+msgid "Project \"%s\" not found"
+msgstr ""
+
+#: ../nova/virt/xenapi_conn.py:129
+msgid ""
+"Must specify xenapi_connection_url, xenapi_connection_username (optionally), "
+"and xenapi_connection_password to use connection_type=xenapi"
+msgstr ""
+
+#: ../nova/virt/xenapi_conn.py:311
+#, python-format
+msgid "Task [%(name)s] %(task)s status: success %(result)s"
+msgstr ""
+
+#: ../nova/virt/xenapi_conn.py:317
+#, python-format
+msgid "Task [%(name)s] %(task)s status: %(status)s %(error_info)s"
+msgstr ""
+
+#: ../nova/virt/xenapi_conn.py:331 ../nova/virt/xenapi_conn.py:344
+#, python-format
+msgid "Got exception: %s"
+msgstr ""
+
+#: ../nova/compute/monitor.py:259
+#, python-format
+msgid "updating %s..."
+msgstr ""
+
+#: ../nova/compute/monitor.py:289
+msgid "unexpected error during update"
+msgstr ""
+
+#: ../nova/compute/monitor.py:356
+#, python-format
+msgid "Cannot get blockstats for \"%(disk)s\" on \"%(iid)s\""
+msgstr ""
+
+#: ../nova/compute/monitor.py:379
+#, python-format
+msgid "Cannot get ifstats for \"%(interface)s\" on \"%(iid)s\""
+msgstr ""
+
+#: ../nova/compute/monitor.py:414
+msgid "unexpected exception getting connection"
+msgstr ""
+
+#: ../nova/compute/monitor.py:429
+#, python-format
+msgid "Found instance: %s"
+msgstr ""
+
+#: ../nova/volume/san.py:67
+#, python-format
+msgid "Could not find iSCSI export for volume %s"
+msgstr ""
+
+#: ../nova/api/ec2/apirequest.py:100
+#, python-format
+msgid ""
+"Unsupported API request: controller = %(controller)s, action = %(action)s"
+msgstr ""
+
+#: ../nova/api/openstack/__init__.py:55
+#, python-format
+msgid "Caught error: %s"
+msgstr ""
+
+#: ../nova/api/openstack/__init__.py:76
+msgid "Including admin operations in API."
+msgstr ""
+
+#: ../nova/console/xvp.py:99
+msgid "Rebuilding xvp conf"
+msgstr ""
+
+#: ../nova/console/xvp.py:116
+#, python-format
+msgid "Re-wrote %s"
+msgstr ""
+
+#: ../nova/console/xvp.py:121
+msgid "Stopping xvp"
+msgstr ""
+
+#: ../nova/console/xvp.py:134
+msgid "Starting xvp"
+msgstr ""
+
+#: ../nova/console/xvp.py:141
+#, python-format
+msgid "Error starting xvp: %s"
+msgstr ""
+
+#: ../nova/console/xvp.py:144
+msgid "Restarting xvp"
+msgstr ""
+
+#: ../nova/console/xvp.py:146
+msgid "xvp not running..."
+msgstr ""
+
+#: ../bin/nova-manage.py:272
+msgid ""
+"The above error may show that the database has not been created.\n"
+"Please create a database using nova-manage sync db before running this "
+"command."
+msgstr ""
+
+#: ../bin/nova-manage.py:426
+msgid ""
+"No more networks available. If this is a new installation, you need\n"
+"to call something like this:\n"
+"\n"
+" nova-manage network create 10.0.0.0/8 10 64\n"
+"\n"
+msgstr ""
+
+#: ../bin/nova-manage.py:431
+msgid ""
+"The above error may show that the certificate db has not been created.\n"
+"Please create a database by running a nova-api server on this host."
+msgstr ""
+
+#: ../bin/nova-manage.py:447 ../bin/nova-manage.py:536
+msgid "network"
+msgstr ""
+
+#: ../bin/nova-manage.py:448
+msgid "IP address"
+msgstr ""
+
+#: ../bin/nova-manage.py:449
+msgid "MAC address"
+msgstr ""
+
+#: ../bin/nova-manage.py:450
+msgid "hostname"
+msgstr ""
+
+#: ../bin/nova-manage.py:451
+msgid "host"
+msgstr ""
+
+#: ../bin/nova-manage.py:537
+msgid "netmask"
+msgstr ""
+
+#: ../bin/nova-manage.py:538
+msgid "start address"
+msgstr ""
+
+#: ../nova/virt/disk.py:69
+#, python-format
+msgid "Failed to load partition: %s"
+msgstr ""
+
+#: ../nova/virt/disk.py:91
+#, python-format
+msgid "Failed to mount filesystem: %s"
+msgstr ""
+
+#: ../nova/virt/disk.py:124
+#, python-format
+msgid "nbd device %s did not show up"
+msgstr ""
+
+#: ../nova/virt/disk.py:128
+#, python-format
+msgid "Could not attach image to loopback: %s"
+msgstr ""
+
+#: ../nova/virt/disk.py:151
+msgid "No free nbd devices"
+msgstr ""
+
+#: ../doc/ext/nova_todo.py:46
+#, python-format
+msgid "%(filename)s, line %(line_info)d"
+msgstr ""
+
+#. FIXME(chiradeep): implement this
+#: ../nova/virt/hyperv.py:118
+msgid "In init host"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:131
+#, python-format
+msgid "Attempt to create duplicate vm %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:148
+#, python-format
+msgid "Starting VM %s "
+msgstr ""
+
+#: ../nova/virt/hyperv.py:150
+#, python-format
+msgid "Started VM %s "
+msgstr ""
+
+#: ../nova/virt/hyperv.py:152
+#, python-format
+msgid "spawn vm failed: %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:169
+#, python-format
+msgid "Failed to create VM %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:188
+#, python-format
+msgid "Set memory for vm %s..."
+msgstr ""
+
+#: ../nova/virt/hyperv.py:198
+#, python-format
+msgid "Set vcpus for vm %s..."
+msgstr ""
+
+#: ../nova/virt/hyperv.py:202
+#, python-format
+msgid "Creating disk for %(vm_name)s by attaching disk file %(vhdfile)s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:227
+#, python-format
+msgid "Failed to add diskdrive to VM %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:230
+#, python-format
+msgid "New disk drive path is %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:247
+#, python-format
+msgid "Failed to add vhd file to VM %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:249
+#, python-format
+msgid "Created disk for %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:253
+#, python-format
+msgid "Creating nic for %s "
+msgstr ""
+
+#: ../nova/virt/hyperv.py:272
+msgid "Failed creating a port on the external vswitch"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:273
+#, python-format
+msgid "Failed creating port for %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:276
+#, python-format
+msgid "Created switch port %(vm_name)s on switch %(ext_path)s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:286
+#, python-format
+msgid "Failed to add nic to VM %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:288
+#, python-format
+msgid "Created nic for %s "
+msgstr ""
+
+#: ../nova/virt/hyperv.py:321
+#, python-format
+msgid "WMI job failed: %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:325
+#, python-format
+msgid "WMI job succeeded: %(desc)s, Elapsed=%(elap)s "
+msgstr ""
+
+#: ../nova/virt/hyperv.py:361
+#, python-format
+msgid "Got request to destroy vm %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:386
+#, python-format
+msgid "Failed to destroy vm %s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:393
+#, python-format
+msgid "Del: disk %(vhdfile)s vm %(instance_name)s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:415
+#, python-format
+msgid ""
+"Got Info for vm %(instance_id)s: state=%(state)s, mem=%(memusage)s, "
+"num_cpu=%(numprocs)s, cpu_time=%(uptime)s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:451
+#, python-format
+msgid "Successfully changed vm state of %(vm_name)s to %(req_state)s"
+msgstr ""
+
+#: ../nova/virt/hyperv.py:454
+#, python-format
+msgid "Failed to change vm state of %(vm_name)s to %(req_state)s"
+msgstr ""
+
+#: ../nova/compute/api.py:71
+#, python-format
+msgid "Instance %d was not found in get_network_topic"
+msgstr ""
+
+#: ../nova/compute/api.py:77
+#, python-format
+msgid "Instance %d has no host"
+msgstr ""
+
+#: ../nova/compute/api.py:97
+#, python-format
+msgid "Quota exceeeded for %(pid)s, tried to run %(min_count)s instances"
+msgstr ""
+
+#: ../nova/compute/api.py:99
+#, python-format
+msgid ""
+"Instance quota exceeded. You can only run %s more instances of this type."
+msgstr ""
+
+#: ../nova/compute/api.py:112
+msgid "Creating a raw instance"
+msgstr ""
+
+#: ../nova/compute/api.py:160
+#, python-format
+msgid "Going to run %s instances..."
+msgstr ""
+
+#: ../nova/compute/api.py:187
+#, python-format
+msgid "Casting to scheduler for %(pid)s/%(uid)s's instance %(instance_id)s"
+msgstr ""
+
+#: ../nova/compute/api.py:292
+#, python-format
+msgid "Going to try to terminate %s"
+msgstr ""
+
+#: ../nova/compute/api.py:296
+#, python-format
+msgid "Instance %d was not found during terminate"
+msgstr ""
+
+#: ../nova/compute/api.py:301
+#, python-format
+msgid "Instance %d is already being terminated"
+msgstr ""
+
+#: ../nova/compute/api.py:481
+#, python-format
+msgid "Invalid device specified: %s. Example device: /dev/vdb"
+msgstr ""
+
+#: ../nova/compute/api.py:496
+msgid "Volume isn't attached to anything!"
+msgstr ""
+
+#: ../nova/rpc.py:98
+#, python-format
+msgid ""
+"AMQP server on %(fl_host)s:%(fl_port)d is unreachable. Trying again in "
+"%(fl_intv)d seconds."
+msgstr ""
+
+#: ../nova/rpc.py:103
+#, python-format
+msgid "Unable to connect to AMQP server after %d tries. Shutting down."
+msgstr ""
+
+#: ../nova/rpc.py:122
+msgid "Reconnected to queue"
+msgstr ""
+
+#: ../nova/rpc.py:129
+msgid "Failed to fetch message from queue"
+msgstr ""
+
+#: ../nova/rpc.py:159
+#, python-format
+msgid "Initing the Adapter Consumer for %s"
+msgstr ""
+
+#: ../nova/rpc.py:178
+#, python-format
+msgid "received %s"
+msgstr ""
+
+#. NOTE(vish): we may not want to ack here, but that means that bad
+#. messages stay in the queue indefinitely, so for now
+#. we just log the message and send an error string
+#. back to the caller
+#: ../nova/rpc.py:191
+#, python-format
+msgid "no method for message: %s"
+msgstr ""
+
+#: ../nova/rpc.py:192
+#, python-format
+msgid "No method for message: %s"
+msgstr ""
+
+#: ../nova/rpc.py:253
+#, python-format
+msgid "Returning exception %s to caller"
+msgstr ""
+
+#: ../nova/rpc.py:294
+#, python-format
+msgid "unpacked context: %s"
+msgstr ""
+
+#: ../nova/rpc.py:313
+msgid "Making asynchronous call..."
+msgstr ""
+
+#: ../nova/rpc.py:316
+#, python-format
+msgid "MSG_ID is %s"
+msgstr ""
+
+#: ../nova/rpc.py:354
+msgid "Making asynchronous cast..."
+msgstr ""
+
+#: ../nova/rpc.py:364
+#, python-format
+msgid "response %s"
+msgstr ""
+
+#: ../nova/rpc.py:373
+#, python-format
+msgid "topic is %s"
+msgstr ""
+
+#: ../nova/rpc.py:374
+#, python-format
+msgid "message %s"
+msgstr ""
+
+#: ../nova/volume/driver.py:78
+#, python-format
+msgid "Recovering from a failed execute. Try number %s"
+msgstr ""
+
+#: ../nova/volume/driver.py:87
+#, python-format
+msgid "volume group %s doesn't exist"
+msgstr ""
+
+#: ../nova/volume/driver.py:220
+#, python-format
+msgid "FAKE AOE: %s"
+msgstr ""
+
+#: ../nova/volume/driver.py:233
+msgid "Skipping ensure_export. No iscsi_target "
+msgstr ""
+
+#: ../nova/volume/driver.py:279 ../nova/volume/driver.py:288
+msgid "Skipping remove_export. No iscsi_target "
+msgstr ""
+
+#: ../nova/volume/driver.py:347
+#, python-format
+msgid "FAKE ISCSI: %s"
+msgstr ""
+
+#: ../nova/volume/driver.py:359
+#, python-format
+msgid "rbd has no pool %s"
+msgstr ""
+
+#: ../nova/volume/driver.py:414
+#, python-format
+msgid "Sheepdog is not working: %s"
+msgstr ""
+
+#: ../nova/volume/driver.py:416
+msgid "Sheepdog is not working"
+msgstr ""
+
+#: ../nova/wsgi.py:68
+#, python-format
+msgid "Starting %(arg0)s on %(host)s:%(port)s"
+msgstr ""
+
+#: ../nova/wsgi.py:147
+msgid "You must implement __call__"
+msgstr ""
+
+#: ../bin/nova-instancemonitor.py:55
+msgid "Starting instance monitor"
+msgstr ""
+
+#: ../bin/nova-dhcpbridge.py:58
+msgid "leasing ip"
+msgstr ""
+
+#: ../bin/nova-dhcpbridge.py:73
+msgid "Adopted old lease or got a change of mac/hostname"
+msgstr ""
+
+#: ../bin/nova-dhcpbridge.py:80
+msgid "releasing ip"
+msgstr ""
+
+#: ../bin/nova-dhcpbridge.py:123
+#, python-format
+msgid ""
+"Called %(action)s for mac %(mac)s with ip %(ip)s and hostname %(hostname)s "
+"on interface %(interface)s"
+msgstr ""
+
+#: ../nova/virt/fake.py:239
+#, python-format
+msgid "Instance %s Not Found"
+msgstr ""
+
+#: ../nova/network/manager.py:153
+#, python-format
+msgid "Dissassociated %s stale fixed ip(s)"
+msgstr ""
+
+#: ../nova/network/manager.py:157
+msgid "setting network host"
+msgstr ""
+
+#: ../nova/network/manager.py:212
+#, python-format
+msgid "Leasing IP %s"
+msgstr ""
+
+#: ../nova/network/manager.py:216
+#, python-format
+msgid "IP %s leased that isn't associated"
+msgstr ""
+
+#: ../nova/network/manager.py:220
+#, python-format
+msgid "IP %(address)s leased to bad mac %(inst_addr)s vs %(mac)s"
+msgstr ""
+
+#: ../nova/network/manager.py:228
+#, python-format
+msgid "IP %s leased that was already deallocated"
+msgstr ""
+
+#: ../nova/network/manager.py:233
+#, python-format
+msgid "Releasing IP %s"
+msgstr ""
+
+#: ../nova/network/manager.py:237
+#, python-format
+msgid "IP %s released that isn't associated"
+msgstr ""
+
+#: ../nova/network/manager.py:241
+#, python-format
+msgid "IP %(address)s released from bad mac %(inst_addr)s vs %(mac)s"
+msgstr ""
+
+#: ../nova/network/manager.py:244
+#, python-format
+msgid "IP %s released that was not leased"
+msgstr ""
+
+#: ../nova/network/manager.py:519
+msgid ""
+"The sum between the number of networks and the vlan start cannot be greater "
+"than 4094"
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:57
+#, python-format
+msgid "Introducing %s..."
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:74
+#, python-format
+msgid "Introduced %(label)s as %(sr_ref)s."
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:78
+msgid "Unable to create Storage Repository"
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:90
+#, python-format
+msgid "Unable to find SR from VBD %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:96
+#, python-format
+msgid "Forgetting SR %s ... "
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:101
+#, python-format
+msgid "Ignoring exception %(exc)s when getting PBDs for %(sr_ref)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:107
+#, python-format
+msgid "Ignoring exception %(exc)s when unplugging PBD %(pbd)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:111
+#, python-format
+msgid "Forgetting SR %s done."
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:113
+#, python-format
+msgid "Ignoring exception %(exc)s when forgetting SR %(sr_ref)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:123
+#, python-format
+msgid "Unable to introduce VDI on SR %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:128
+#, python-format
+msgid "Unable to get record of VDI %s on"
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:146
+#, python-format
+msgid "Unable to introduce VDI for SR %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:175
+#, python-format
+msgid "Unable to obtain target information %(device_path)s, %(mountpoint)s"
+msgstr ""
+
+#: ../nova/virt/xenapi/volume_utils.py:197
+#, python-format
+msgid "Mountpoint cannot be translated: %s"
+msgstr ""
+
+#: ../nova/objectstore/image.py:262
+#, python-format
+msgid "Failed to decrypt private key: %s"
+msgstr ""
+
+#: ../nova/objectstore/image.py:269
+#, python-format
+msgid "Failed to decrypt initialization vector: %s"
+msgstr ""
+
+#: ../nova/objectstore/image.py:277
+#, python-format
+msgid "Failed to decrypt image file %(image_file)s: %(err)s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:106
+#, python-format
+msgid "Unknown S3 value type %r"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:137
+msgid "Authenticated request"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:182
+msgid "List of buckets requested"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:209
+#, python-format
+msgid "List keys for bucket %s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:217
+#, python-format
+msgid "Unauthorized attempt to access bucket %s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:235
+#, python-format
+msgid "Creating bucket %s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:245
+#, python-format
+msgid "Deleting bucket %s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:249
+#, python-format
+msgid "Unauthorized attempt to delete bucket %s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:273
+#, python-format
+msgid "Getting object: %(bname)s / %(nm)s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:276
+#, python-format
+msgid "Unauthorized attempt to get object %(nm)s from bucket %(bname)s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:296
+#, python-format
+msgid "Putting object: %(bname)s / %(nm)s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:299
+#, python-format
+msgid "Unauthorized attempt to upload object %(nm)s to bucket %(bname)s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:318
+#, python-format
+msgid "Deleting object: %(bname)s / %(nm)s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:322
+#, python-format
+msgid "Unauthorized attempt to delete object %(nm)s from bucket %(bname)s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:396
+#, python-format
+msgid "Not authorized to upload image: invalid directory %s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:404
+#, python-format
+msgid "Not authorized to upload image: unauthorized bucket %s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:409
+#, python-format
+msgid "Starting image upload: %s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:423
+#, python-format
+msgid "Not authorized to update attributes of image %s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:431
+#, python-format
+msgid "Toggling publicity flag of image %(image_id)s %(newstatus)r"
+msgstr ""
+
+#. other attributes imply update
+#: ../nova/objectstore/handler.py:436
+#, python-format
+msgid "Updating user fields on image %s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:450
+#, python-format
+msgid "Unauthorized attempt to delete image %s"
+msgstr ""
+
+#: ../nova/objectstore/handler.py:455
+#, python-format
+msgid "Deleted image: %s"
+msgstr ""
+
+#: ../nova/auth/manager.py:259
+#, python-format
+msgid "Looking up user: %r"
+msgstr ""
+
+#: ../nova/auth/manager.py:263
+#, python-format
+msgid "Failed authorization for access key %s"
+msgstr ""
+
+#: ../nova/auth/manager.py:264
+#, python-format
+msgid "No user found for access key %s"
+msgstr ""
+
+#: ../nova/auth/manager.py:270
+#, python-format
+msgid "Using project name = user name (%s)"
+msgstr ""
+
+#: ../nova/auth/manager.py:277
+#, python-format
+msgid "failed authorization: no project named %(pjid)s (user=%(uname)s)"
+msgstr ""
+
+#: ../nova/auth/manager.py:279
+#, python-format
+msgid "No project called %s could be found"
+msgstr ""
+
+#: ../nova/auth/manager.py:287
+#, python-format
+msgid ""
+"Failed authorization: user %(uname)s not admin and not member of project "
+"%(pjname)s"
+msgstr ""
+
+#: ../nova/auth/manager.py:289
+#, python-format
+msgid "User %(uid)s is not a member of project %(pjid)s"
+msgstr ""
+
+#: ../nova/auth/manager.py:298 ../nova/auth/manager.py:309
+#, python-format
+msgid "Invalid signature for user %s"
+msgstr ""
+
+#: ../nova/auth/manager.py:299 ../nova/auth/manager.py:310
+msgid "Signature does not match"
+msgstr ""
+
+#: ../nova/auth/manager.py:380
+msgid "Must specify project"
+msgstr ""
+
+#: ../nova/auth/manager.py:414
+#, python-format
+msgid "The %s role can not be found"
+msgstr ""
+
+#: ../nova/auth/manager.py:416
+#, python-format
+msgid "The %s role is global only"
+msgstr ""
+
+#: ../nova/auth/manager.py:420
+#, python-format
+msgid "Adding role %(role)s to user %(uid)s in project %(pid)s"
+msgstr ""
+
+#: ../nova/auth/manager.py:423
+#, python-format
+msgid "Adding sitewide role %(role)s to user %(uid)s"
+msgstr ""
+
+#: ../nova/auth/manager.py:448
+#, python-format
+msgid "Removing role %(role)s from user %(uid)s on project %(pid)s"
+msgstr ""
+
+#: ../nova/auth/manager.py:451
+#, python-format
+msgid "Removing sitewide role %(role)s from user %(uid)s"
+msgstr ""
+
+#: ../nova/auth/manager.py:515
+#, python-format
+msgid "Created project %(name)s with manager %(manager_user)s"
+msgstr ""
+
+#: ../nova/auth/manager.py:533
+#, python-format
+msgid "modifying project %s"
+msgstr ""
+
+#: ../nova/auth/manager.py:545
+#, python-format
+msgid "Adding user %(uid)s to project %(pid)s"
+msgstr ""
+
+#: ../nova/auth/manager.py:566
+#, python-format
+msgid "Remove user %(uid)s from project %(pid)s"
+msgstr ""
+
+#: ../nova/auth/manager.py:592
+#, python-format
+msgid "Deleting project %s"
+msgstr ""
+
+#: ../nova/auth/manager.py:650
+#, python-format
+msgid "Created user %(rvname)s (admin: %(rvadmin)r)"
+msgstr ""
+
+#: ../nova/auth/manager.py:659
+#, python-format
+msgid "Deleting user %s"
+msgstr ""
+
+#: ../nova/auth/manager.py:669
+#, python-format
+msgid "Access Key change for user %s"
+msgstr ""
+
+#: ../nova/auth/manager.py:671
+#, python-format
+msgid "Secret Key change for user %s"
+msgstr ""
+
+#: ../nova/auth/manager.py:673
+#, python-format
+msgid "Admin status set to %(admin)r for user %(uid)s"
+msgstr ""
+
+#: ../nova/auth/manager.py:722
+#, python-format
+msgid "No vpn data for project %s"
+msgstr ""
+
+#: ../nova/service.py:161
+#, python-format
+msgid "Starting %(topic)s node (version %(vcs_string)s)"
+msgstr ""
+
+#: ../nova/service.py:174
+msgid "Service killed that has no database entry"
+msgstr ""
+
+#: ../nova/service.py:195
+msgid "The service database object disappeared, Recreating it."
+msgstr ""
+
+#: ../nova/service.py:207
+msgid "Recovered model server connection!"
+msgstr ""
+
+#: ../nova/service.py:213
+msgid "model server went away"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:174
+#, python-format
+msgid "LDAP user %s already exists"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:205
+#, python-format
+msgid "LDAP object for %s doesn't exist"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:348
+#, python-format
+msgid "User %s doesn't exist"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:472
+#, python-format
+msgid "Group can't be created because group %s already exists"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:478
+#, python-format
+msgid "Group can't be created because user %s doesn't exist"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:495
+#, python-format
+msgid "User %s can't be searched in group because the user doesn't exist"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:507
+#, python-format
+msgid "User %s can't be added to the group because the user doesn't exist"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:510 ../nova/auth/ldapdriver.py:521
+#, python-format
+msgid "The group at dn %s doesn't exist"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:513
+#, python-format
+msgid "User %(uid)s is already a member of the group %(group_dn)s"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:524
+#, python-format
+msgid ""
+"User %s can't be removed from the group because the user doesn't exist"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:528
+#, python-format
+msgid "User %s is not a member of the group"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:542
+#, python-format
+msgid ""
+"Attempted to remove the last member of a group. Deleting the group at %s "
+"instead."
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:549
+#, python-format
+msgid "User %s can't be removed from all because the user doesn't exist"
+msgstr ""
+
+#: ../nova/auth/ldapdriver.py:564
+#, python-format
+msgid "Group at dn %s doesn't exist"
+msgstr ""
+
+#: ../nova/virt/xenapi/network_utils.py:40
+#, python-format
+msgid "Found non-unique network for bridge %s"
+msgstr ""
+
+#: ../nova/virt/xenapi/network_utils.py:43
+#, python-format
+msgid "Found no network for bridge %s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:97
+#, python-format
+msgid "Creating new user: %s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:105
+#, python-format
+msgid "Deleting user: %s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:127
+#, python-format
+msgid "Adding role %(role)s to user %(user)s for project %(project)s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:131
+#, python-format
+msgid "Adding sitewide role %(role)s to user %(user)s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:137
+#, python-format
+msgid "Removing role %(role)s from user %(user)s for project %(project)s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:141
+#, python-format
+msgid "Removing sitewide role %(role)s from user %(user)s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:146 ../nova/api/ec2/admin.py:223
+msgid "operation must be add or remove"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:159
+#, python-format
+msgid "Getting x509 for user: %(name)s on project: %(project)s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:177
+#, python-format
+msgid "Create project %(name)s managed by %(manager_user)s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:190
+#, python-format
+msgid "Modify project: %(name)s managed by %(manager_user)s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:200
+#, python-format
+msgid "Delete project: %s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:214
+#, python-format
+msgid "Adding user %(user)s to project %(project)s"
+msgstr ""
+
+#: ../nova/api/ec2/admin.py:218
+#, python-format
+msgid "Removing user %(user)s from project %(project)s"
+msgstr ""
diff --git a/run_tests.sh b/run_tests.sh
index b8078e150..8f2b51757 100755
--- a/run_tests.sh
+++ b/run_tests.sh
@@ -11,6 +11,7 @@ function usage {
echo " -x, --stop Stop running tests after the first error or failure."
echo " -f, --force Force a clean re-build of the virtual environment. Useful when dependencies have been added."
echo " -p, --pep8 Just run pep8"
+ echo " -c, --coverage Generate coverage report"
echo " -h, --help Print this usage message"
echo " --hide-elapsed Don't print the elapsed time for each test along with slow test list"
echo ""
@@ -29,6 +30,7 @@ function process_option {
-n|--no-recreate-db) let recreate_db=0;;
-f|--force) let force=1;;
-p|--pep8) let just_pep8=1;;
+ -c|--coverage) let coverage=1;;
-*) noseopts="$noseopts $1";;
*) noseargs="$noseargs $1"
esac
@@ -43,12 +45,18 @@ noseargs=
noseopts=
wrapper=""
just_pep8=0
+coverage=0
recreate_db=1
for arg in "$@"; do
process_option $arg
done
+# If enabled, tell nose to collect coverage data
+if [ $coverage -eq 1 ]; then
+ noseopts="$noseopts --with-coverage --cover-package=nova"
+fi
+
function run_tests {
# Just run the test suites in current environment
${wrapper} $NOSETESTS 2> run_tests.log
@@ -108,6 +116,11 @@ then
fi
fi
+# Delete old coverage data from previous runs
+if [ $coverage -eq 1 ]; then
+ ${wrapper} coverage erase
+fi
+
if [ $just_pep8 -eq 1 ]; then
run_pep8
exit
@@ -126,3 +139,8 @@ run_tests || exit
if [ -z "$noseargs" ]; then
run_pep8
fi
+
+if [ $coverage -eq 1 ]; then
+ echo "Generating coverage report in covhtml/"
+ ${wrapper} coverage html -d covhtml -i
+fi
diff --git a/tools/esx/guest_tool.py b/tools/esx/guest_tool.py
index 13b0f8d33..97b5302ba 100644
--- a/tools/esx/guest_tool.py
+++ b/tools/esx/guest_tool.py
@@ -21,6 +21,7 @@ On Windows we require pyWin32 installed on Python.
"""
import array
+import gettext
import logging
import os
import platform
@@ -30,6 +31,8 @@ import subprocess
import sys
import time
+gettext.install('nova', unicode=1)
+
PLATFORM_WIN = 'win32'
PLATFORM_LINUX = 'linux2'
ARCH_32_BIT = '32bit'
@@ -275,7 +278,8 @@ def _filter_duplicates(all_entries):
return final_list
-def _set_rhel_networking(network_details=[]):
+def _set_rhel_networking(network_details=None):
+ network_details = network_details or []
all_dns_servers = []
for network_detail in network_details:
mac_address, ip_address, subnet_mask, gateway, broadcast,\
@@ -315,6 +319,46 @@ def _set_rhel_networking(network_details=[]):
_execute(['/sbin/service', 'network', 'restart'])
+def _set_ubuntu_networking(network_details=None):
+ network_details = network_details or []
+ """ Set IPv4 network settings for Ubuntu """
+ all_dns_servers = []
+ for network_detail in network_details:
+ mac_address, ip_address, subnet_mask, gateway, broadcast,\
+ dns_servers = network_detail
+ all_dns_servers.extend(dns_servers)
+ adapter_name, current_ip_address = \
+ _get_linux_adapter_name_and_ip_address(mac_address)
+
+ if adapter_name and not ip_address == current_ip_address:
+ interface_file_name = \
+ '/etc/network/interfaces'
+ # Remove file
+ os.remove(interface_file_name)
+ # Touch file
+ _execute(['touch', interface_file_name])
+ interface_file = open(interface_file_name, 'w')
+ interface_file.write('\nauto %s' % adapter_name)
+ interface_file.write('\niface %s inet static' % adapter_name)
+ interface_file.write('\nbroadcast %s' % broadcast)
+ interface_file.write('\ngateway %s' % gateway)
+ interface_file.write('\nnetmask %s' % subnet_mask)
+ interface_file.write('\naddress %s' % ip_address)
+ interface_file.close()
+ if all_dns_servers:
+ dns_file_name = "/etc/resolv.conf"
+ os.remove(dns_file_name)
+ _execute(['touch', dns_file_name])
+ dns_file = open(dns_file_name, 'w')
+ dns_file.write("; generated by OpenStack guest tools")
+ unique_entries = _filter_duplicates(all_dns_servers)
+ for dns_server in unique_entries:
+ dns_file.write("\nnameserver %s" % dns_server)
+ dns_file.close()
+ print "\nRestarting networking....\n"
+ _execute(['/etc/init.d/networking', 'restart'])
+
+
def _linux_set_networking():
"""Set IP address for the Linux VM."""
vmware_tools_bin = None
@@ -330,8 +374,13 @@ def _linux_set_networking():
cmd = [vmware_tools_bin, '--cmd', 'machine.id.get']
network_details = _parse_network_details(_execute(cmd,
check_exit_code=False))
- # TODO(sateesh): For other distros like ubuntu, suse, debian, BSD, etc.
- _set_rhel_networking(network_details)
+ # TODO(sateesh): For other distros like suse, debian, BSD, etc.
+ if(platform.dist()[0] == 'Ubuntu'):
+ _set_ubuntu_networking(network_details)
+ elif (platform.dist()[0] == 'redhat'):
+ _set_rhel_networking(network_details)
+ else:
+ logging.warn(_("Distro '%s' not supported") % platform.dist()[0])
else:
logging.warn(_("VMware Tools is not installed"))