[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#774320: marked as done (unblock: nova/2014.1.3-7.1)



Your message dated Fri, 2 Jan 2015 23:07:13 +0100
with message-id <20150102220713.GB8727@ugent.be>
and subject line Re: Bug#774320: unblock: nova/2014.1.3-7.1
has caused the Debian Bug report #774320,
regarding unblock: nova/2014.1.3-7.1
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
774320: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=774320
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Please unblock package nova

The NMU upload -7.1 was done to fix RC bug #773504. Unfortunately there
is already a newer version of nova in unstable than in testing and I
could not find an unblock request for this. This earlier upload was done
by the maintainer and not by me. The NMU upload was done from
the package git repositories and includes all the changes from version
2014.1.3-7. Some of these changes do not have RC bug numbers associated. But
all of them look like fixing RC level issues to me. 

I'm quite sure all these fixes are safe for jessie. But I'm also aware
that we are very late in the release process. If you insist I can
prepare an upload to tpu with only the changes you are willing to accept
into jessie. Here is a commented summary of the changes. The full debdiff
is attached.

RC bugs fixed:
#773504 - incompatibility with the version of libvirt in testing, fixed
          by a patch that is accepted upstream to fix this issue.
#770941 - Fix for overwriting a config file on upgrade. The fix is to
          only apply the Debconf logic if explicitly requested.
	  Unfortunately this bug is currently at wishlist severity
	  because it was downgraded by the maintainer, but IMO it fixes
	  an RC bug.

Security fixes:
CVE-2014-8333 - Fixes a leak in combination with VMWare vCenter
                virtualization. This fix is cherry picked from a change
		accepted upstream for the stable release.

Non RC fixes:
#772699 - Fix init script dependency from libvirt-bin to libvirtd. This is 
          an addition to #757548 which was solved by changing the package 
	  dependencies. This bug currently does not have RC severity,
	  but depending on the consequences of the wrong dependency
	  (failing to start or only delayed operation) this could be
	  seen as an RC bug.

Debconf translation updates:
#773483 - spanish
#771409 - german

unblock nova/2014.1.3-7.1

-- System Information:
Debian Release: 8.0
  APT prefers testing-proposed-updates
  APT policy: (500, 'testing-proposed-updates'), (500, 'testing'), (100, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.16.0-4-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
diff -Nru nova-2014.1.3/debian/changelog nova-2014.1.3/debian/changelog
--- nova-2014.1.3/debian/changelog	2014-11-11 21:52:52.000000000 +0100
+++ nova-2014.1.3/debian/changelog	2014-12-30 23:45:51.000000000 +0100
@@ -1,3 +1,29 @@
+nova (2014.1.3-7.1) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Added avoid_changing_UUID_when_redefining_nwfilters.patch so that nova
+    continues to work with libvirt >= 1.2.7 (Closes: #773504).
+  * Updated the es.po debconf translation, thanks to jathan
+    <jathanblackred@openmailbox.org> (Closes: #773483).
+
+ -- Gaudenz Steinlin <gaudenz@debian.org>  Tue, 30 Dec 2014 23:41:04 +0100
+
+nova (2014.1.3-7) unstable; urgency=medium
+
+  * Now init scripts depends on libvirtd and not libvirt-bin, as this has been
+    renamed in the libvirt-daemon-system package (Closes: #772699).
+  * Do not touch the database directive if user doesn't want to use
+    dbconfig-common (Closes: #770941).
+  * Updated de.po German debconf translation (Closes: #771409).
+  * Added patch for CVE-2014-8333: Fix VM leak when deletion of VM during
+    resizing.
+  * Ensure we have the systemd fixes by build-depending on
+    openstack-pkg-tools (>= 20~).
+  * Only calls pkgos_dbc_postinst if the user asked for dbconf-common
+    management.
+
+ -- Thomas Goirand <zigo@debian.org>  Wed, 10 Dec 2014 19:21:37 +0800
+
 nova (2014.1.3-6) unstable; urgency=high
 
   [ Mehdi Abaakouk ]
diff -Nru nova-2014.1.3/debian/control nova-2014.1.3/debian/control
--- nova-2014.1.3/debian/control	2014-11-11 21:52:52.000000000 +0100
+++ nova-2014.1.3/debian/control	2014-12-30 23:36:11.000000000 +0100
@@ -9,7 +9,7 @@
            gustavo panizzo <gfa@zumbi.com.ar>
 Build-Depends: debhelper (>= 9),
                dh-systemd,
-               openstack-pkg-tools (>= 14~),
+               openstack-pkg-tools (>= 20~),
                po-debconf,
                python-all (>= 2.6.6-3~),
                python-pbr (>= 0.6),
diff -Nru nova-2014.1.3/debian/nova-common.postinst.in nova-2014.1.3/debian/nova-common.postinst.in
--- nova-2014.1.3/debian/nova-common.postinst.in	2014-11-11 21:52:52.000000000 +0100
+++ nova-2014.1.3/debian/nova-common.postinst.in	2014-12-15 09:33:01.000000000 +0100
@@ -76,7 +76,6 @@
 	pkgos_write_new_conf nova logging.conf
 
 	# Tweak config files depending on debconf answers
-	pkgos_dbc_postinst /etc/nova/nova.conf database connection nova $@
 	pkgos_rabbit_write_conf /etc/nova/nova.conf DEFAULT nova
 	manage_nova_api_field
 	manage_nova_my_ip_field
@@ -89,6 +88,7 @@
 
 	db_get nova/configure_db
 	if [ "$RET" = "true" ]; then
+		pkgos_dbc_postinst /etc/nova/nova.conf database connection nova $@
 		echo "nova-common: Now running \"nova-manage db sync\", this may take a while..."
 		su nova -c "nova-manage db sync" || true
 	fi
diff -Nru nova-2014.1.3/debian/nova-compute.init.in nova-2014.1.3/debian/nova-compute.init.in
--- nova-2014.1.3/debian/nova-compute.init.in	2014-11-11 21:52:52.000000000 +0100
+++ nova-2014.1.3/debian/nova-compute.init.in	2014-12-15 09:33:01.000000000 +0100
@@ -3,8 +3,8 @@
 # Provides:          nova-compute
 # Required-Start:    $network $local_fs $remote_fs $syslog
 # Required-Stop:     $remote_fs
-# Should-Start:      libvirt-bin postgresql mysql keystone rabbitmq-server ntp
-# Should-Stop:       libvirt-bin postgresql mysql keystone rabbitmq-server ntp
+# Should-Start:      libvirtd postgresql mysql keystone rabbitmq-server ntp
+# Should-Stop:       libvirtd postgresql mysql keystone rabbitmq-server ntp
 # Default-Start:     2 3 4 5
 # Default-Stop:      0 1 6
 # Short-Description: Nova Compute server
diff -Nru nova-2014.1.3/debian/patches/avoid_changing_UUID_when_redefining_nwfilters.patch nova-2014.1.3/debian/patches/avoid_changing_UUID_when_redefining_nwfilters.patch
--- nova-2014.1.3/debian/patches/avoid_changing_UUID_when_redefining_nwfilters.patch	1970-01-01 01:00:00.000000000 +0100
+++ nova-2014.1.3/debian/patches/avoid_changing_UUID_when_redefining_nwfilters.patch	2014-12-30 23:36:11.000000000 +0100
@@ -0,0 +1,202 @@
+Author: Daniel P. Berrange <berrange@redhat.com>
+ libvirt >= 1.2.7 enforces that when you re-define a network filter you can't
+ change the UUID. ie name + uuid must match. Since Nova was not including any
+ UUID in the XML it sent, it would always get a random UUID generated, which
+ would cause failures when re-defining an existing filter. The result was that
+ Nova would fail to start up and fail to migrate if there was an existing guest
+ running. The fix is to query libvirt to see if the nwfilter already exists,
+ and extract the UUID from its XML and use that when re-defining it.
+Date: Fri, 19 Sep 2014 12:41:54 +0000 (+0100)
+Subject: libvirt: avoid changing UUID when redefining nwfilters
+X-Git-Tag: 2014.2.rc1~50^2
+X-Git-Url: https://review.openstack.org/gitweb?p=openstack%2Fnova.git;a=commitdiff_plain;h=2418a9dce86280fbf269f68f7d7c9b739f662ef1
+Bug-Ubuntu: https://launchpad.net/bugs/1360119
+Bug-Debian: https://bugs.debian.org/773504
+Change-Id: I9d4b2c6c8f0c9a23ed79ed8e0b5ac0d4418851a4
+Last-Update: 2014-12-19
+
+Index: nova/nova/tests/virt/libvirt/test_libvirt.py
+===================================================================
+--- nova.orig/nova/tests/virt/libvirt/test_libvirt.py	2014-12-19 19:01:11.000000000 +0800
++++ nova/nova/tests/virt/libvirt/test_libvirt.py	2014-12-19 19:01:11.000000000 +0800
+@@ -7402,18 +7402,33 @@
+ 
+     def filterDefineXMLMock(self, xml):
+         class FakeNWFilterInternal:
+-            def __init__(self, parent, name, xml):
++            def __init__(self, parent, name, u, xml):
+                 self.name = name
++                self.uuid = u
+                 self.parent = parent
+                 self.xml = xml
+ 
++            def XMLDesc(self, flags):
++                return self.xml
++
+             def undefine(self):
+                 del self.parent.filters[self.name]
+-                pass
++
+         tree = etree.fromstring(xml)
+         name = tree.get('name')
++        u = tree.find('uuid')
++        if u is None:
++            u = uuid.uuid4().hex
++        else:
++            u = u.text
+         if name not in self.filters:
+-            self.filters[name] = FakeNWFilterInternal(self, name, xml)
++            self.filters[name] = FakeNWFilterInternal(self, name, u, xml)
++        else:
++            if self.filters[name].uuid != u:
++                raise libvirt.libvirtError(
++                    "Mismatching name '%s' with uuid '%s' vs '%s'"
++                    % (name, self.filters[name].uuid, u))
++            self.filters[name].xml = xml
+         return True
+ 
+ 
+@@ -7954,6 +7969,26 @@
+ 
+         db.instance_destroy(admin_ctxt, instance_ref['uuid'])
+ 
++    def test_redefining_nwfilters(self):
++        fakefilter = NWFilterFakes()
++        self.fw._conn.nwfilterDefineXML = fakefilter.filterDefineXMLMock
++        self.fw._conn.nwfilterLookupByName = fakefilter.nwfilterLookupByName
++
++        instance_ref = self._create_instance()
++        inst_id = instance_ref['id']
++        inst_uuid = instance_ref['uuid']
++
++        self.security_group = self.setup_and_return_security_group()
++
++        db.instance_add_security_group(self.context, inst_uuid,
++                                       self.security_group['id'])
++
++        instance = db.instance_get(self.context, inst_id)
++
++        network_info = _fake_network_info(self.stubs, 1)
++        self.fw.setup_basic_filtering(instance, network_info)
++        self.fw.setup_basic_filtering(instance, network_info)
++
+     def test_nwfilter_parameters(self):
+         admin_ctxt = context.get_admin_context()
+ 
+Index: nova/nova/virt/libvirt/firewall.py
+===================================================================
+--- nova.orig/nova/virt/libvirt/firewall.py	2014-12-19 18:57:22.000000000 +0800
++++ nova/nova/virt/libvirt/firewall.py	2014-12-19 19:01:11.000000000 +0800
+@@ -15,6 +15,9 @@
+ #    License for the specific language governing permissions and limitations
+ #    under the License.
+ 
++import uuid
++
++from lxml import etree
+ from oslo.config import cfg
+ 
+ from nova.cloudpipe import pipelib
+@@ -59,31 +62,30 @@
+         return self._libvirt_get_connection()
+     _conn = property(_get_connection)
+ 
+-    @staticmethod
+-    def nova_no_nd_reflection_filter():
++    def nova_no_nd_reflection_filter(self):
+         """This filter protects false positives on IPv6 Duplicate Address
+         Detection(DAD).
+         """
++        uuid = self._get_filter_uuid('nova-no-nd-reflection')
+         return '''<filter name='nova-no-nd-reflection' chain='ipv6'>
+                   <!-- no nd reflection -->
+                   <!-- drop if destination mac is v6 mcast mac addr and
+                        we sent it. -->
+-
++                  <uuid>%s</uuid>
+                   <rule action='drop' direction='in'>
+                       <mac dstmacaddr='33:33:00:00:00:00'
+                            dstmacmask='ff:ff:00:00:00:00' srcmacaddr='$MAC'/>
+                   </rule>
+-                  </filter>'''
++                  </filter>''' % uuid
+ 
+-    @staticmethod
+-    def nova_dhcp_filter():
++    def nova_dhcp_filter(self):
+         """The standard allow-dhcp-server filter is an <ip> one, so it uses
+            ebtables to allow traffic through. Without a corresponding rule in
+            iptables, it'll get blocked anyway.
+         """
+-
++        uuid = self._get_filter_uuid('nova-allow-dhcp-server')
+         return '''<filter name='nova-allow-dhcp-server' chain='ipv4'>
+-                    <uuid>891e4787-e5c0-d59b-cbd6-41bc3c6b36fc</uuid>
++                    <uuid>%s</uuid>
+                     <rule action='accept' direction='out'
+                           priority='100'>
+                       <udp srcipaddr='0.0.0.0'
+@@ -97,7 +99,7 @@
+                            srcportstart='67'
+                            dstportstart='68'/>
+                     </rule>
+-                  </filter>'''
++                  </filter>''' % uuid
+ 
+     def setup_basic_filtering(self, instance, network_info):
+         """Set up basic filtering (MAC, IP, and ARP spoofing protection)."""
+@@ -172,7 +174,9 @@
+         nic_id = vif['address'].replace(':', '')
+         instance_filter_name = self._instance_filter_name(instance, nic_id)
+         parameters = self._get_instance_filter_parameters(vif)
++        uuid = self._get_filter_uuid(instance_filter_name)
+         xml = '''<filter name='%s' chain='root'>''' % instance_filter_name
++        xml += '<uuid>%s</uuid>' % uuid
+         for f in filters:
+             xml += '''<filterref filter='%s'>''' % f
+             xml += ''.join(parameters)
+@@ -210,23 +214,40 @@
+         filter_set = ['no-mac-spoofing',
+                       'no-ip-spoofing',
+                       'no-arp-spoofing']
+-        self._define_filter(self.nova_no_nd_reflection_filter)
++
++        self._define_filter(self.nova_no_nd_reflection_filter())
+         filter_set.append('nova-no-nd-reflection')
+         self._define_filter(self._filter_container('nova-nodhcp', filter_set))
+         filter_set.append('allow-dhcp-server')
+         self._define_filter(self._filter_container('nova-base', filter_set))
+         self._define_filter(self._filter_container('nova-vpn',
+                                                    ['allow-dhcp-server']))
+-        self._define_filter(self.nova_dhcp_filter)
++        self._define_filter(self.nova_dhcp_filter())
+ 
+         self.static_filters_configured = True
+ 
+     def _filter_container(self, name, filters):
+-        xml = '''<filter name='%s' chain='root'>%s</filter>''' % (
+-                 name,
++        uuid = self._get_filter_uuid(name)
++        xml = '''<filter name='%s' chain='root'>
++                   <uuid>%s</uuid>
++                   %s
++                 </filter>''' % (name, uuid,
+                  ''.join(["<filterref filter='%s'/>" % (f,) for f in filters]))
+         return xml
+ 
++    def _get_filter_uuid(self, name):
++        try:
++            flt = self._conn.nwfilterLookupByName(name)
++            xml = flt.XMLDesc(0)
++            doc = etree.fromstring(xml)
++            u = doc.find("./uuid").text
++        except Exception as e:
++            LOG.debug("Cannot find UUID for filter '%s': '%s'" % (name, e))
++            u = uuid.uuid4().hex
++
++        LOG.debug("UUID for filter '%s' is '%s'" % (name, u))
++        return u
++
+     def _define_filter(self, xml):
+         if callable(xml):
+             xml = xml()
diff -Nru nova-2014.1.3/debian/patches/CVE-2014-8333_Fix_VM_leak_when_deletion_of_VM_during_resizing.patch nova-2014.1.3/debian/patches/CVE-2014-8333_Fix_VM_leak_when_deletion_of_VM_during_resizing.patch
--- nova-2014.1.3/debian/patches/CVE-2014-8333_Fix_VM_leak_when_deletion_of_VM_during_resizing.patch	1970-01-01 01:00:00.000000000 +0100
+++ nova-2014.1.3/debian/patches/CVE-2014-8333_Fix_VM_leak_when_deletion_of_VM_during_resizing.patch	2014-12-15 09:33:01.000000000 +0100
@@ -0,0 +1,99 @@
+Description: CVE-2014-8333: VMWare: Fix VM leak when deletion of VM during resizing
+ During the VM resizing, before VM arrive RESIZED state, driver
+ migrate_disk_and_power_off will initially rename orginal vm 'uuid' to be
+ 'uuid-orig' and clone a new vm with 'uuid' name. When deletion VM is triggered
+ at this time window, it wouldn't be able to delete the VM uuid-orig in VCenter
+ and so cause VM leak. As VM task state will be set to 'deleting' and it can
+ not be used to determine the resize migrating/migrated state, this fix will
+ attempt to delete orig VM within destroy phase.
+ .
+ NOTE: the aformentioned patch broke Minesweeper. The fix was also cherry
+ picked from commit e464bc518e8590d59c2741948466777982ca3319. This was to do
+ two things:
+  1. Solve the actual bug
+  2. Ensure that the unit tests and Minesweeper passed
+Author: ZHU ZHU <zhuzhubj@cn.ibm.com>
+Date: Wed, 3 Sep 2014 08:59:13 +0000 (-0500)
+X-Git-Url: https://review.openstack.org/gitweb?p=openstack%2Fnova.git;a=commitdiff_plain;h=d71445c7d2d2921d10a08f82330f0ab8ef4f7df2
+Bug-Ubuntu: https://launchpad.net/bugs/1359138
+Change-Id: I7598afbf0dc3c527471af34224003d28e64daaff
+Origin: upstream, https://review.openstack.org/#/c/125492/
+Last-Update: 2014-12-15
+
+diff --git a/nova/tests/virt/vmwareapi/test_driver_api.py b/nova/tests/virt/vmwareapi/test_driver_api.py
+index 08adaad..310457c 100644
+--- a/nova/tests/virt/vmwareapi/test_driver_api.py
++++ b/nova/tests/virt/vmwareapi/test_driver_api.py
+@@ -1441,6 +1441,46 @@ class VMwareAPIVMTestCase(test.NoDBTestCase):
+                               None, self.destroy_disks)
+             self.assertFalse(mock_destroy.called)
+ 
++    def _destroy_instance_without_vm_ref(self, resize_exists=False,
++                                         task_state=None):
++
++        def fake_vm_ref_from_name(session, vm_name):
++            if resize_exists:
++                return 'fake-ref'
++
++        self._create_instance()
++        with contextlib.nested(
++             mock.patch.object(vm_util, 'get_vm_ref_from_name',
++                               fake_vm_ref_from_name),
++             mock.patch.object(self.conn._session,
++                               '_call_method'),
++             mock.patch.object(self.conn._vmops,
++                               '_destroy_instance')
++        ) as (mock_get, mock_call, mock_destroy):
++            self.instance.task_state = task_state
++            self.conn.destroy(self.context, self.instance,
++                              self.network_info,
++                              None, True)
++            if resize_exists:
++                if task_state == task_states.RESIZE_REVERTING:
++                    expected = 1
++                else:
++                    expected = 2
++            else:
++                expected = 1
++            self.assertEqual(expected, mock_destroy.call_count)
++            self.assertFalse(mock_call.called)
++
++    def test_destroy_instance_without_vm_ref(self):
++        self._destroy_instance_without_vm_ref()
++
++    def test_destroy_instance_without_vm_ref_with_resize(self):
++        self._destroy_instance_without_vm_ref(resize_exists=True)
++
++    def test_destroy_instance_without_vm_ref_with_resize_revert(self):
++        self._destroy_instance_without_vm_ref(resize_exists=True,
++            task_state=task_states.RESIZE_REVERTING)
++
+     def _rescue(self, config_drive=False):
+         def fake_attach_disk_to_vm(vm_ref, instance,
+                                    adapter_type, disk_type, vmdk_path=None,
+diff --git a/nova/virt/vmwareapi/vmops.py b/nova/virt/vmwareapi/vmops.py
+index c437360..d937854 100644
+--- a/nova/virt/vmwareapi/vmops.py
++++ b/nova/virt/vmwareapi/vmops.py
+@@ -1129,6 +1129,21 @@ class VMwareVMOps(object):
+                 self._destroy_instance(instance, network_info,
+                                        destroy_disks=destroy_disks,
+                                        instance_name=rescue_name)
++        # NOTE(arnaud): Destroy uuid-orig and uuid VMs iff it is not
++        # triggered by the revert resize api call. This prevents
++        # the uuid-orig VM to be deleted to be able to associate it later.
++        if instance['task_state'] != task_states.RESIZE_REVERTING:
++            # When VM deletion is triggered in middle of VM resize before VM
++            # arrive RESIZED state, uuid-orig VM need to deleted to avoid
++            # VM leak. Within method _destroy_instance it will check vmref
++            # exist or not before attempt deletion.
++            resize_orig_vmname = instance['uuid'] + self._migrate_suffix
++            vm_orig_ref = vm_util.get_vm_ref_from_name(self._session,
++                                                       resize_orig_vmname)
++            if vm_orig_ref:
++                self._destroy_instance(instance, network_info,
++                                       destroy_disks=destroy_disks,
++                                       instance_name=resize_orig_vmname)
+         self._destroy_instance(instance, network_info,
+                                destroy_disks=destroy_disks)
+         LOG.debug(_("Instance destroyed"), instance=instance)
diff -Nru nova-2014.1.3/debian/patches/series nova-2014.1.3/debian/patches/series
--- nova-2014.1.3/debian/patches/series	2014-11-11 21:52:52.000000000 +0100
+++ nova-2014.1.3/debian/patches/series	2014-12-30 23:36:11.000000000 +0100
@@ -22,3 +22,5 @@
 9990_update_german_programm_messages.patch
 CVE-2014-7230_CVE-2014-7231_Sync_process_utils_from_oslo.patch
 CVE-2014-3708_Fixes_DOS_issue_in_instance_list_ip_filter.patch
+CVE-2014-8333_Fix_VM_leak_when_deletion_of_VM_during_resizing.patch
+avoid_changing_UUID_when_redefining_nwfilters.patch
diff -Nru nova-2014.1.3/debian/po/de.po nova-2014.1.3/debian/po/de.po
--- nova-2014.1.3/debian/po/de.po	2014-11-11 21:52:52.000000000 +0100
+++ nova-2014.1.3/debian/po/de.po	2014-12-15 09:33:01.000000000 +0100
@@ -4,10 +4,10 @@
 # Copyright of this file Erik Pfannenstein 2012, Chris Leick 2013-2014.
 msgid ""
 msgstr ""
-"Project-Id-Version: nova 2014.1.2\n"
+"Project-Id-Version: nova 2014.1.3-6\n"
 "Report-Msgid-Bugs-To: nova@packages.debian.org\n"
-"POT-Creation-Date: 2014-01-18 23:08+0800\n"
-"PO-Revision-Date: 2014-10-01 13:39+0200\n"
+"POT-Creation-Date: 2014-05-03 03:26+0000\n"
+"PO-Revision-Date: 2014-11-29 08:44+0200\n"
 "Last-Translator: Chris Leick <c.leick@vollbio.de>\n"
 "Language-Team: German <debian-l10n-german@lists.debian.org>\n"
 "Language: de\n"
@@ -141,23 +141,20 @@
 #. Type: string
 #. Description
 #: ../nova-common.templates:8001
-msgid ""
-"Enter the IP address that will be set in the my_ip directive of nova.conf."
-msgstr ""
-"Geben Sie die IP-Adresse ein, die in der Direktive »my_ip« der nova.conf "
-"gesetzt werden wird."
+msgid "This value will be stored in the my_ip directive of nova.conf."
+msgstr "Dieser Wert wird in der Richtlinie »my_ip« der »nova.conf« gespeichert."
 
 #. Type: string
 #. Description
 #: ../nova-common.templates:9001
-msgid "Value for neutron_url:"
-msgstr "Wert für »neutron_url«:"
+msgid "Neutron server URL:"
+msgstr "URL des Neutron-Servers:"
 
 #. Type: string
 #. Description
 #: ../nova-common.templates:9001
-msgid "Enter the URL of your Neutron server."
-msgstr "Geben Sie die URL Ihres Neutron-Servers ein."
+msgid "Please enter the URL of the Neutron server."
+msgstr "Bitte geben Sie die URL Ihres Neutron-Servers ein."
 
 #. Type: string
 #. Description
@@ -178,32 +175,33 @@
 #. Type: string
 #. Description
 #: ../nova-common.templates:10001
-msgid "Enter the name of the admin tenant for Neutron."
-msgstr "Geben Sie den Namen des Admin-Tenants für Neutron ein."
+msgid "Please enter the name of the admin tenant for Neutron."
+msgstr "Bitte geben Sie den Namen des Admin-Tenants für Neutron ein."
 
 #. Type: string
 #. Description
 #: ../nova-common.templates:11001
-msgid "Neutron admin username:"
-msgstr "Benutzername des Neutron-Admins:"
+msgid "Neutron administrator username:"
+msgstr "Benutzername des Neutron-Administrators:"
 
 #. Type: string
 #. Description
 #: ../nova-common.templates:11001
-msgid "Enter the username for Neutron."
-msgstr "Bitte geben Sie den Benutzernamen für Neutron ein."
+msgid "Please enter the username of the Neutron administrator."
+msgstr "Bitte geben Sie den Benutzernamen des Neutron-Administrators ein."
 
 #. Type: password
 #. Description
 #: ../nova-common.templates:12001
-msgid "Neutron admin password:"
-msgstr "Passwort des Neutron-Admins:"
+msgid "Neutron administrator password:"
+msgstr "Passwort des Neutron-Administrators:"
 
 #. Type: password
 #. Description
 #: ../nova-common.templates:12001
-msgid "Enter the password for the admin username of Neutron."
-msgstr "Bitte geben Sie das Passwort für den administrativen Benutzernamen ein."
+msgid "Please enter the password of the Neutron administrator."
+msgstr ""
+"Bitte geben Sie das Passwort für des Neutron-Administrators ein."
 
 #. Type: string
 #. Description
@@ -465,6 +463,9 @@
 msgid "This can later be edited in /etc/default/nova-consoleproxy."
 msgstr "Dies kann später in /etc/default/nova-consoleproxy geändert werden."
 
+#~ msgid "Value for neutron_url:"
+#~ msgstr "Wert für »neutron_url«:"
+
 #~ msgid "Start nova services at boot?"
 #~ msgstr "Nova-Dienste beim Hochfahren starten?"
 
diff -Nru nova-2014.1.3/debian/po/es.po nova-2014.1.3/debian/po/es.po
--- nova-2014.1.3/debian/po/es.po	2014-11-11 21:52:52.000000000 +0100
+++ nova-2014.1.3/debian/po/es.po	2014-12-30 23:36:11.000000000 +0100
@@ -4,10 +4,10 @@
 #
 # Changes:
 # - Initial translation
-# Jonathan Bustillos <jathanblackred@gmail.com>, 2012, 2013.
+# Jonathan Bustillos <jathanblackred@openmailbox.com>, 2012.
 #
 # - Updates
-# Jonathan Bustillos <jathanblackred@gmail.com>, 2012, 2013.
+# Jonathan Bustillos <jathanblackred@openmailbox.com>, 2012, 2013, 2014.
 # Matías Bellone <matiasbellone+debian@gmail.com>, 2013.
 #
 # Traductores, si no conocen el formato PO, merece la pena leer la
@@ -27,14 +27,13 @@
 # - La guía de traducción de po's de debconf:
 # /usr/share/doc/po-debconf/README-trans
 # o http://www.debian.org/intl/l10n/po-debconf/README-trans
-#
 msgid ""
 msgstr ""
 "Project-Id-Version: nova\n"
 "Report-Msgid-Bugs-To: nova@packages.debian.org\n"
 "POT-Creation-Date: 2014-05-03 03:26+0000\n"
-"PO-Revision-Date: 2013-12-08 23:45-0600\n"
-"Last-Translator: Jonathan Bustillos <jathanblackred@gmail.com>\n"
+"PO-Revision-Date: 2014-12-11 18:12+0000\n"
+"Last-Translator: Jonathan Bustillos <jathanblackred@openmailbox.com>\n"
 "Language-Team: Debian Spanish <debian-l10n-spanish@lists.debian.org>\n"
 "Language: es\n"
 "MIME-Version: 1.0\n"
@@ -166,33 +165,30 @@
 #. Type: string
 #. Description
 #: ../nova-common.templates:8001
-#, fuzzy
 #| msgid ""
 #| "Enter the IP address that will be set in the my_ip directive of nova.conf."
 msgid "This value will be stored in the my_ip directive of nova.conf."
 msgstr ""
-"Introduzca la dirección IP que será configurada en la directiva my_ip del "
-"archivo «nova.conf»."
+"Este valor será almacenado en la directiva «my_ip» del archivo «nova.conf»."
 
 #. Type: string
 #. Description
 #: ../nova-common.templates:9001
 msgid "Neutron server URL:"
-msgstr ""
+msgstr "URL del servidor Neutron"
 
 #. Type: string
 #. Description
 #: ../nova-common.templates:9001
 msgid "Please enter the URL of the Neutron server."
-msgstr ""
+msgstr "Introduzca la URL para el servidor Neutron."
 
 #. Type: string
 #. Description
 #: ../nova-common.templates:10001
-#, fuzzy
 #| msgid "Auth server tenant name:"
 msgid "Neutron admin tenant name:"
-msgstr "Nombre del inquilino («tenant») del servidor de autenticación:"
+msgstr "Nombre del inquilino («tenant») administrador del servidor Neutron:"
 
 #. Type: string
 #. Description
@@ -201,57 +197,53 @@
 "Nova needs to be able to communicate with Neutron through Keystone. "
 "Therefore Nova needs to know the Neutron admin tenant, username and password."
 msgstr ""
+"Nova necesita ser capaz de comunicarse con Neutron a través de Keystone. Por "
+"lo tanto Nova requiere conocer el inquilino («tenant») administrador de "
+"Neutron, el usuario y la contraseña."
 
 #. Type: string
 #. Description
 #: ../nova-common.templates:10001
 msgid "Please enter the name of the admin tenant for Neutron."
 msgstr ""
+"Introduzca el nombre del inquilino («tenant») administrador para Neutron:"
 
 #. Type: string
 #. Description
 #: ../nova-common.templates:11001
-#, fuzzy
 #| msgid "Auth server tenant name:"
 msgid "Neutron administrator username:"
-msgstr "Nombre del inquilino («tenant») del servidor de autenticación:"
+msgstr "Nombre para el administrador de Neutron:"
 
 #. Type: string
 #. Description
 #: ../nova-common.templates:11001
-#, fuzzy
 #| msgid ""
 #| "Please enter the username used to connect to your XenAPI (XCP server)."
 msgid "Please enter the username of the Neutron administrator."
-msgstr ""
-"Introduzca el nombre de usuario utilizado para conectarse a su servidor "
-"XenAPI (servidor XCP)."
+msgstr "Introduzca el nombre de administrador de Neutron:"
 
 #. Type: password
 #. Description
 #: ../nova-common.templates:12001
-#, fuzzy
 #| msgid "Auth server tenant name:"
 msgid "Neutron administrator password:"
-msgstr "Nombre del inquilino («tenant») del servidor de autenticación:"
+msgstr "Contraseña del administrador de Neutron:"
 
 #. Type: password
 #. Description
 #: ../nova-common.templates:12001
-#, fuzzy
 #| msgid ""
 #| "Please enter the password used to connect to your XenAPI (XCP server)."
 msgid "Please enter the password of the Neutron administrator."
-msgstr ""
-"Introduzca la contraseña para conectarse a su servidor XenAPI (servidor XCP)."
+msgstr "Introduzca la contraseña del administrador de Neutron."
 
 #. Type: string
 #. Description
 #: ../nova-common.templates:13001
-#, fuzzy
 #| msgid "Ip address of your rabbitmq host:"
 msgid "IP address of your RabbitMQ host:"
-msgstr "Dirección IP del servidor rabbitmq:"
+msgstr "Dirección IP del servidor RabbitMQ:"
 
 #. Type: string
 #. Description
@@ -265,49 +257,47 @@
 "In order to interoperate with other components of OpenStack, this package "
 "needs to connect to a central RabbitMQ server."
 msgstr ""
+"Con el fin de interoperar con otros componentes de OpenStack, este paquete "
+"tiene que conectarse a un servidor RabbitMQ central."
 
 #. Type: string
 #. Description
 #: ../nova-common.templates:13001
 msgid "Please specify the IP address of that server."
-msgstr ""
+msgstr "Introduzca la dirección IP de ese servidor."
 
 #. Type: string
 #. Description
 #: ../nova-common.templates:14001
-#, fuzzy
 #| msgid "Username to connect to XenAPI:"
 msgid "Username for connection to the RabbitMQ server:"
-msgstr "Nombre de usuario para conectarse a XenAPI:"
+msgstr "Nombre de usuario para la conexión al servidor RabbitMQ:"
 
 #. Type: string
 #. Description
 #: ../nova-common.templates:14001
-#, fuzzy
 #| msgid ""
 #| "Please enter the username used to connect to your XenAPI (XCP server)."
 msgid "Please specify the username used to connect to the RabbitMQ server."
 msgstr ""
-"Introduzca el nombre de usuario utilizado para conectarse a su servidor "
-"XenAPI (servidor XCP)."
+"Introduzca el nombre de usuario utilizado para conectarse al servidor "
+"RabbitMQ."
 
 #. Type: password
 #. Description
 #: ../nova-common.templates:15001
-#, fuzzy
 #| msgid "Password to connect to XenAPI:"
 msgid "Password for connection to the RabbitMQ server:"
-msgstr "Contraseña para conectarse a XenAPI:"
+msgstr "Contraseña para conectarse al servidor RabbitMQ:"
 
 #. Type: password
 #. Description
 #: ../nova-common.templates:15001
-#, fuzzy
 #| msgid ""
 #| "Please enter the password used to connect to your XenAPI (XCP server)."
 msgid "Please specify the password used to connect to the RabbitMQ server."
 msgstr ""
-"Introduzca la contraseña para conectarse a su servidor XenAPI (servidor XCP)."
+"Introduzca la contraseña utilizada para conectarse al servidor RabbitMQ."
 
 #. Type: string
 #. Description

--- End Message ---
--- Begin Message ---
Hi,

On Wed, Dec 31, 2014 at 06:46:03PM +0100, Gaudenz Steinlin wrote:
> Please unblock package nova

Unblocked.

Cheers,

Ivo

--- End Message ---

Reply to: