Hello community, here is the log from the commit of package openstack-nova for openSUSE:Factory checked in at 2013-04-17 23:13:11 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/openstack-nova (Old) and /work/SRC/openSUSE:Factory/.openstack-nova.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openstack-nova", Maintainer is "radma...@suse.com" Changes: -------- --- /work/SRC/openSUSE:Factory/openstack-nova/openstack-nova.changes 2013-03-25 20:41:40.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.openstack-nova.new/openstack-nova.changes 2013-04-17 23:13:13.000000000 +0200 @@ -1,0 +2,9 @@ +Sun Mar 24 00:11:28 UTC 2013 - cloud-de...@suse.de + +- Update to version 2012.2.4+git.1364083888.5b43cef: + + libvirt: enable apic setting for Xen or KVM guest. + + Fix double reboot issue during soft reboot + + Enable VM DHCP request to reach DHCP agent + + Handle compute node records with no timestamp. + +-------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ openstack-nova-doc.spec ++++++ --- /var/tmp/diff_new_pack.c06TmM/_old 2013-04-17 23:13:16.000000000 +0200 +++ /var/tmp/diff_new_pack.c06TmM/_new 2013-04-17 23:13:16.000000000 +0200 @@ -20,7 +20,7 @@ %define majorversion 2012.2.3 Name: openstack-%{component}-doc -Version: 2012.2.4+git.1363298039.9561484 +Version: 2012.2.4+git.1364083888.5b43cef Release: 1 License: Apache-2.0 Summary: OpenStack Compute (Nova) - Documentation ++++++ openstack-nova.spec ++++++ --- /var/tmp/diff_new_pack.c06TmM/_old 2013-04-17 23:13:16.000000000 +0200 +++ /var/tmp/diff_new_pack.c06TmM/_new 2013-04-17 23:13:16.000000000 +0200 @@ -22,7 +22,7 @@ %define username openstack-%{component} Name: openstack-%{component} -Version: 2012.2.4+git.1363298039.9561484 +Version: 2012.2.4+git.1364083888.5b43cef Release: 1 License: Apache-2.0 Summary: OpenStack Compute (Nova) ++++++ nova-stable-folsom.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nova-2012.2.4/AUTHORS new/nova-2012.2.4/AUTHORS --- old/nova-2012.2.4/AUTHORS 2013-03-14 20:19:56.000000000 +0100 +++ new/nova-2012.2.4/AUTHORS 2013-03-21 14:48:40.000000000 +0100 @@ -243,6 +243,7 @@ Rick Harris <rconradhar...@gmail.com> Ripal Nathuji <ripal.nath...@calxeda.com> Rob Esker <es...@netapp.com> +Robert Collins <robe...@robertcollins.net> Roland Hochmuth <roland.hochm...@hp.com> Ronen Kat <ronen...@il.ibm.com> Rongze Zhu <zrz...@gmail.com> @@ -290,11 +291,13 @@ Vincent Untz <vu...@suse.com> Vishvananda Ishaya <vishvana...@gmail.com> Vivek YS <vivek...@gmail.com> +Wangpan <hzwang...@corp.netease.com> William Wolf <throughnoth...@gmail.com> Yaguang Tang <heut2...@gmail.com> Yong Sheng Gong <gong...@cn.ibm.com> Yosef Berman <yo...@cloudscaling.com> Yoshiaki Tamura <yo...@midokura.jp> +Yufang Zhang <yufang521...@gmail.com> Yun Mao <yun...@gmail.com> Yun Shen <yun.s...@hp.com> Yunhong, Jiang <yunhong.ji...@intel.com> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nova-2012.2.4/ChangeLog new/nova-2012.2.4/ChangeLog --- old/nova-2012.2.4/ChangeLog 2013-03-14 20:19:55.000000000 +0100 +++ new/nova-2012.2.4/ChangeLog 2013-03-21 14:48:40.000000000 +0100 @@ -1,3 +1,59 @@ +commit 5b43cef510b68cff1f6e2f80742d3204b0b51e45 +Author: Robert Collins <robe...@robertcollins.net> +Date: Mon Jan 7 15:12:39 2013 +1300 + + Handle compute node records with no timestamp. + + Commit 94560ab57d9fc23673f42017e6f2a78cb2b66b7a added a fast-path + to avoid work when baremetal compute nodes haven't changed, but if + the compute message has None for its updated-at timestamp (which + can happen during startup) the comparison crashes. + + Fixes bug: 1096719 + Change-Id: Ib8add431d975eee133deefea62eb53479a97396e + (cherry picked from commit fad69df25ffcea2a44cbf3ef636a68863a2d64d9) + + nova/scheduler/host_manager.py | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit ad3bd39ad6917a5318db1df3c05d209e31bc95c5 +Merge: 2f74b42 549879d +Author: Jenkins <jenk...@review.openstack.org> +Date: Thu Mar 21 12:46:12 2013 +0000 + + Merge "Enable VM DHCP request to reach DHCP agent" into stable/folsom + +commit 2f74b4277604e54dd550d952dade33545bb0bf5b +Merge: cdc2386 46d2060 +Author: Jenkins <jenk...@review.openstack.org> +Date: Thu Mar 21 11:42:44 2013 +0000 + + Merge "Fix double reboot issue during soft reboot" into stable/folsom + +commit cdc23862a236253263adbb84cb8f1749ae81d928 +Author: Yufang Zhang <yufang521...@gmail.com> +Date: Tue Dec 4 20:20:11 2012 +0800 + + libvirt: enable apic setting for Xen or KVM guest. + + Bug 1086352 + + Currently, nova doesn't enable apic setting for Xen or KVM guest + in its libvirt driver. Windows guests would not boot successful in + such case. This patch adds apic setting in libvirt driver for Xen + or KVM guest, which would fix this problem. A check is also added + to libvirt guest config test case for this patch. + + (cherry picked from commit d0e930bd9f1bddf6223635fdc463b2176cc39690) + + Change-Id: Ie213c9d086f77faf0cdc5a32337c5bf4b828cf5f + + nova/tests/test_libvirt.py | 1 + + nova/tests/test_libvirt_config.py | 12 ++++++++++++ + nova/virt/libvirt/config.py | 8 ++++++-- + nova/virt/libvirt/driver.py | 1 + + 4 files changed, 20 insertions(+), 2 deletions(-) + commit 9561484166f245d0e4602a36351d6cac72dd9426 Author: Michael Still <mi...@stillhq.com> Date: Wed Mar 13 04:44:14 2013 +1100 @@ -44,6 +100,27 @@ Merge "VNC Token Validation" into stable/folsom +commit 549879de70a6e60e670ea9ddcf094375ce87b996 +Author: Gary Kotton <gkot...@redhat.com> +Date: Thu Feb 21 13:43:10 2013 +0000 + + Enable VM DHCP request to reach DHCP agent + + When using the firewall driver IptablesFirewallDriver and the + default INPUT and FORWARD rules are DISCARD then the DHCP + request from the VM is discarded prior to getting to the dnsmasq. + + New rules will be added that enable DHCP requests to pass. + + This fixes bug 1131223 + + Change-Id: I5117458d6a4c0fe2e333f6f3c2f902672e6293e5 + + nova/tests/test_libvirt.py | 6 ++++-- + nova/tests/test_xenapi.py | 6 ++++-- + nova/virt/firewall.py | 16 ++++++++++++++++ + 3 files changed, 24 insertions(+), 4 deletions(-) + commit 8c4df00a378ad6e2586a361355d4580a4901ada0 Merge: 994dc75 889e9c0 Author: Jenkins <jenk...@review.openstack.org> @@ -58,6 +135,25 @@ Merge "Handle compute node not available for live migration" into stable/folsom +commit 46d2060c08980ea20cb8175a9e09ad6415287ee9 +Author: Wangpan <hzwang...@corp.netease.com> +Date: Tue Jan 8 13:54:19 2013 +0800 + + Fix double reboot issue during soft reboot + + Using the ID of domain in Libvirt to recognize the hard reboot has been + implemented or not, if the ID changed, we believe the domain has been rebooted, + return True and break from soft reboot. + + Fixes: bug #1046356 + + Change-Id: Iec2f9e8225cfe2779f84d2095667f3c0e621e935 + (cherry picked from commit 6344bff494758e0d7d7d25f43a3b56d82447441e) + + nova/tests/fakelibvirt.py | 6 ++++++ + nova/virt/libvirt/driver.py | 7 +++++++ + 2 files changed, 13 insertions(+) + commit 8289d6c7834415878ae7524e8a718abbce49a1b0 Author: Davanum Srinivas <d...@linux.vnet.ibm.com> Date: Wed Dec 12 21:11:06 2012 -0500 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nova-2012.2.4/nova/scheduler/host_manager.py new/nova-2012.2.4/nova/scheduler/host_manager.py --- old/nova-2012.2.4/nova/scheduler/host_manager.py 2013-03-14 20:14:22.000000000 +0100 +++ new/nova-2012.2.4/nova/scheduler/host_manager.py 2013-03-21 14:44:19.000000000 +0100 @@ -122,7 +122,8 @@ def update_from_compute_node(self, compute): """Update information about a host from its compute_node info.""" - if self.updated and self.updated > compute['updated_at']: + if (self.updated and compute['updated_at'] + and self.updated > compute['updated_at']): return all_ram_mb = compute['memory_mb'] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nova-2012.2.4/nova/tests/fakelibvirt.py new/nova-2012.2.4/nova/tests/fakelibvirt.py --- old/nova-2012.2.4/nova/tests/fakelibvirt.py 2013-03-14 20:14:22.000000000 +0100 +++ new/nova-2012.2.4/nova/tests/fakelibvirt.py 2013-03-21 14:44:19.000000000 +0100 @@ -179,6 +179,7 @@ self._def = self._parse_definition(xml) self._has_saved_state = False self._snapshots = {} + self._id = self._connection._id_counter def _parse_definition(self, xml): try: @@ -299,6 +300,9 @@ self._state = VIR_DOMAIN_SHUTOFF self._connection._mark_not_running(self) + def ID(self): + return self._id + def name(self): return self._def['name'] @@ -516,6 +520,8 @@ if dom._transient: self._undefine(dom) + dom._id = -1 + for (k, v) in self._running_vms.iteritems(): if v == dom: del self._running_vms[k] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nova-2012.2.4/nova/tests/test_libvirt.py new/nova-2012.2.4/nova/tests/test_libvirt.py --- old/nova-2012.2.4/nova/tests/test_libvirt.py 2013-03-14 20:14:22.000000000 +0100 +++ new/nova-2012.2.4/nova/tests/test_libvirt.py 2013-03-21 14:44:19.000000000 +0100 @@ -571,6 +571,7 @@ _fake_network_info(self.stubs, 1), None, None) self.assertEquals(cfg.acpi, True) + self.assertEquals(cfg.apic, True) self.assertEquals(cfg.memory, 1024 * 1024 * 2) self.assertEquals(cfg.vcpus, 1) self.assertEquals(cfg.os_type, vm_mode.HVM) @@ -3330,8 +3331,10 @@ ipv6 = self.fw.iptables.ipv6['filter'].rules ipv4_network_rules = len(ipv4) - len(inst_ipv4) - ipv4_len ipv6_network_rules = len(ipv6) - len(inst_ipv6) - ipv6_len - self.assertEquals(ipv4_network_rules, - ipv4_rules_per_addr * ipv4_addr_per_network * networks_count) + # Extra rules are for the DHCP request + rules = (ipv4_rules_per_addr * ipv4_addr_per_network * + networks_count) + 2 + self.assertEquals(ipv4_network_rules, rules) self.assertEquals(ipv6_network_rules, ipv6_rules_per_addr * ipv6_addr_per_network * networks_count) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nova-2012.2.4/nova/tests/test_libvirt_config.py new/nova-2012.2.4/nova/tests/test_libvirt_config.py --- old/nova-2012.2.4/nova/tests/test_libvirt_config.py 2013-03-14 20:14:22.000000000 +0100 +++ new/nova-2012.2.4/nova/tests/test_libvirt_config.py 2013-03-21 14:44:19.000000000 +0100 @@ -626,6 +626,8 @@ obj.os_loader = '/usr/lib/xen/boot/hvmloader' obj.os_root = "root=xvda" obj.os_cmdline = "console=xvc0" + obj.acpi = True + obj.apic = True disk = config.LibvirtConfigGuestDisk() disk.source_type = "file" @@ -648,6 +650,10 @@ <cmdline>console=xvc0</cmdline> <root>root=xvda</root> </os> + <features> + <acpi/> + <apic/> + </features> <devices> <disk type="file" device="disk"> <source file="/tmp/img"/> @@ -665,6 +671,8 @@ obj.uuid = "b38a3f43-4be2-4046-897f-b67c2f5e0147" obj.os_type = "linux" obj.os_boot_dev = "hd" + obj.acpi = True + obj.apic = True disk = config.LibvirtConfigGuestDisk() disk.source_type = "file" @@ -685,6 +693,10 @@ <type>linux</type> <boot dev="hd"/> </os> + <features> + <acpi/> + <apic/> + </features> <devices> <disk type="file" device="disk"> <source file="/tmp/img"/> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nova-2012.2.4/nova/tests/test_xenapi.py new/nova-2012.2.4/nova/tests/test_xenapi.py --- old/nova-2012.2.4/nova/tests/test_xenapi.py 2013-03-14 20:14:22.000000000 +0100 +++ new/nova-2012.2.4/nova/tests/test_xenapi.py 2013-03-21 14:44:19.000000000 +0100 @@ -1743,8 +1743,10 @@ ipv6 = self.fw.iptables.ipv6['filter'].rules ipv4_network_rules = len(ipv4) - len(inst_ipv4) - ipv4_len ipv6_network_rules = len(ipv6) - len(inst_ipv6) - ipv6_len - self.assertEquals(ipv4_network_rules, - ipv4_rules_per_addr * ipv4_addr_per_network * networks_count) + # Extra rules are for the DHCP request + rules = (ipv4_rules_per_addr * ipv4_addr_per_network * + networks_count) + 2 + self.assertEquals(ipv4_network_rules, rules) self.assertEquals(ipv6_network_rules, ipv6_rules_per_addr * ipv6_addr_per_network * networks_count) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nova-2012.2.4/nova/virt/firewall.py new/nova-2012.2.4/nova/virt/firewall.py --- old/nova-2012.2.4/nova/virt/firewall.py 2013-03-14 20:14:22.000000000 +0100 +++ new/nova-2012.2.4/nova/virt/firewall.py 2013-03-21 14:44:19.000000000 +0100 @@ -145,6 +145,10 @@ self.network_infos = {} self.basicly_filtered = False + # Flags for DHCP request rule + self.dhcp_create = False + self.dhcp_created = False + self.iptables.ipv4['filter'].add_chain('sg-fallback') self.iptables.ipv4['filter'].add_rule('sg-fallback', '-j DROP') self.iptables.ipv6['filter'].add_chain('sg-fallback') @@ -187,6 +191,17 @@ LOG.debug(_('Filters added to instance'), instance=instance) self.refresh_provider_fw_rules() LOG.debug(_('Provider Firewall Rules refreshed'), instance=instance) + # Ensure that DHCP request rule is updated if necessary + if (self.dhcp_create and not self.dhcp_created): + self.iptables.ipv4['filter'].add_rule( + 'INPUT', + '-s 0.0.0.0/32 -d 255.255.255.255/32 ' + '-p udp -m udp --sport 68 --dport 67 -j ACCEPT') + self.iptables.ipv4['filter'].add_rule( + 'FORWARD', + '-s 0.0.0.0/32 -d 255.255.255.255/32 ' + '-p udp -m udp --sport 68 --dport 67 -j ACCEPT') + self.dhcp_created = True self.iptables.apply() def _create_filter(self, ips, chain_name): @@ -268,6 +283,7 @@ if dhcp_server: ipv4_rules.append('-s %s -p udp --sport 67 --dport 68 ' '-j ACCEPT' % (dhcp_server,)) + self.dhcp_create = True def _do_project_network_rules(self, ipv4_rules, ipv6_rules, network_info): # make sure this is legacy nw_info diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nova-2012.2.4/nova/virt/libvirt/config.py new/nova-2012.2.4/nova/virt/libvirt/config.py --- old/nova-2012.2.4/nova/virt/libvirt/config.py 2013-03-14 20:14:22.000000000 +0100 +++ new/nova-2012.2.4/nova/virt/libvirt/config.py 2013-03-21 14:44:19.000000000 +0100 @@ -585,6 +585,7 @@ self.vcpus = 1 self.cpu = None self.acpi = False + self.apic = False self.clock = None self.os_type = None self.os_loader = None @@ -622,9 +623,12 @@ root.append(os) def _format_features(self, root): - if self.acpi: + if self.acpi or self.apic: features = etree.Element("features") - features.append(etree.Element("acpi")) + if self.acpi: + features.append(etree.Element("acpi")) + if self.apic: + features.append(etree.Element("apic")) root.append(features) def _format_devices(self, root): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nova-2012.2.4/nova/virt/libvirt/driver.py new/nova-2012.2.4/nova/virt/libvirt/driver.py --- old/nova-2012.2.4/nova/virt/libvirt/driver.py 2013-03-14 20:14:22.000000000 +0100 +++ new/nova-2012.2.4/nova/virt/libvirt/driver.py 2013-03-21 14:44:19.000000000 +0100 @@ -912,6 +912,7 @@ dom = self._lookup_by_name(instance["name"]) (state, _max_mem, _mem, _cpus, _t) = dom.info() state = LIBVIRT_POWER_STATE[state] + old_domid = dom.ID() # NOTE(vish): This check allows us to reboot an instance that # is already shutdown. if state == power_state.RUNNING: @@ -920,8 +921,10 @@ # FLAG defines depending on how long the get_info # call takes to return. for x in xrange(FLAGS.libvirt_wait_soft_reboot_seconds): + dom = self._lookup_by_name(instance["name"]) (state, _max_mem, _mem, _cpus, _t) = dom.info() state = LIBVIRT_POWER_STATE[state] + new_domid = dom.ID() if state in [power_state.SHUTDOWN, power_state.CRASHED]: @@ -931,6 +934,10 @@ timer = utils.LoopingCall(self._wait_for_running, instance) timer.start(interval=0.5).wait() return True + elif old_domid != new_domid: + LOG.info(_("Instance may have been rebooted during soft " + "reboot, so return now."), instance=instance) + return True greenthread.sleep(1) return False @@ -1791,6 +1798,7 @@ if FLAGS.libvirt_type != "lxc" and FLAGS.libvirt_type != "uml": guest.acpi = True + guest.apic = True clk = config.LibvirtConfigGuestClock() clk.offset = "utc" -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org