Don't close libvirt connection for non-fatal errors (bz 522168) Manager UI
tweaks Generate better errors if disk/net stats polling fails
This commit is contained in:
parent
3957d80fc8
commit
0c96ca8237
BIN
state_paused.png
Normal file
BIN
state_paused.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 921 B |
BIN
state_running.png
Normal file
BIN
state_running.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
BIN
state_shutoff.png
Normal file
BIN
state_shutoff.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 828 B |
49
virt-manager-0.8.0-conn-close-exception.patch
Normal file
49
virt-manager-0.8.0-conn-close-exception.patch
Normal file
@ -0,0 +1,49 @@
|
||||
# HG changeset patch
|
||||
# User Cole Robinson <crobinso@redhat.com>
|
||||
# Date 1253131339 14400
|
||||
# Node ID 1c886d1863f72e7ddd5fb99050362296be6a9deb
|
||||
# Parent 9242a7fe76b16c6505bdd3d3d328ae8f0c56da10
|
||||
Don't close connection on all libvirt errors: only if libvirtd goes away.
|
||||
|
||||
diff -r 9242a7fe76b1 -r 1c886d1863f7 src/virtManager/connection.py
|
||||
--- a/src/virtManager/connection.py Wed Sep 16 16:01:54 2009 -0400
|
||||
+++ b/src/virtManager/connection.py Wed Sep 16 16:02:19 2009 -0400
|
||||
@@ -941,7 +941,15 @@
|
||||
updateVMs = newVMs
|
||||
|
||||
for uuid in updateVMs:
|
||||
- self.vms[uuid].tick(now)
|
||||
+ vm = self.vms[uuid]
|
||||
+ try:
|
||||
+ vm.tick(now)
|
||||
+ except libvirt.libvirtError, e:
|
||||
+ if e.get_error_code() == libvirt.VIR_ERR_SYSTEM_ERROR:
|
||||
+ raise
|
||||
+ logging.exception("Tick for VM '%s' failed" % vm.get_name())
|
||||
+ except Exception, e:
|
||||
+ logging.exception("Tick for VM '%s' failed" % vm.get_name())
|
||||
|
||||
if not noStatsUpdate:
|
||||
self._recalculate_stats(now)
|
||||
diff -r 9242a7fe76b1 -r 1c886d1863f7 src/virtManager/engine.py
|
||||
--- a/src/virtManager/engine.py Wed Sep 16 16:01:54 2009 -0400
|
||||
+++ b/src/virtManager/engine.py Wed Sep 16 16:02:19 2009 -0400
|
||||
@@ -199,10 +199,14 @@
|
||||
self.connections[uri]["connection"].tick()
|
||||
except KeyboardInterrupt:
|
||||
raise
|
||||
- except:
|
||||
- logging.exception("Could not refresh connection %s." % uri)
|
||||
- logging.debug("Closing connection since refresh failed.")
|
||||
- self.connections[uri]["connection"].close()
|
||||
+ except libvirt.libvirtError, e:
|
||||
+ if e.get_error_code() == libvirt.VIR_ERR_SYSTEM_ERROR:
|
||||
+ logging.exception("Could not refresh connection %s." % uri)
|
||||
+ logging.debug("Closing connection since libvirtd "
|
||||
+ "appears to have stopped.")
|
||||
+ self.connections[uri]["connection"].close()
|
||||
+ else:
|
||||
+ raise
|
||||
return 1
|
||||
|
||||
def change_timer_interval(self,ignore1,ignore2,ignore3,ignore4):
|
249
virt-manager-0.8.0-manager-ui-tweaks.patch
Normal file
249
virt-manager-0.8.0-manager-ui-tweaks.patch
Normal file
@ -0,0 +1,249 @@
|
||||
# HG changeset patch
|
||||
# User Cole Robinson <crobinso@redhat.com>
|
||||
# Date 1253201058 14400
|
||||
# Node ID a6f055361d165bea5fbb3c62ec54a820987a7dde
|
||||
# Parent 1c886d1863f72e7ddd5fb99050362296be6a9deb
|
||||
Update new VM status icons.
|
||||
|
||||
Previous round didn't convey state very well, and looked too much like
|
||||
buttons.
|
||||
|
||||
diff -r 1c886d1863f7 -r a6f055361d16 pixmaps/state_paused.png
|
||||
Binary file pixmaps/state_paused.png has changed
|
||||
diff -r 1c886d1863f7 -r a6f055361d16 pixmaps/state_running.png
|
||||
Binary file pixmaps/state_running.png has changed
|
||||
diff -r 1c886d1863f7 -r a6f055361d16 pixmaps/state_shutoff.png
|
||||
Binary file pixmaps/state_shutoff.png has changed
|
||||
diff -r 1c886d1863f7 -r a6f055361d16 src/virtManager/config.py
|
||||
--- a/src/virtManager/config.py Wed Sep 16 16:02:19 2009 -0400
|
||||
+++ b/src/virtManager/config.py Thu Sep 17 11:24:18 2009 -0400
|
||||
@@ -90,7 +90,16 @@
|
||||
libvirt.VIR_DOMAIN_SHUTOFF: gtk.gdk.pixbuf_new_from_file_at_size(self.get_icon_dir() + "/state_shutoff.png", 18, 18),
|
||||
libvirt.VIR_DOMAIN_NOSTATE: gtk.gdk.pixbuf_new_from_file_at_size(self.get_icon_dir() + "/state_running.png", 18, 18),
|
||||
}
|
||||
- #initialize the help stuff
|
||||
+ self.status_icons_large = {
|
||||
+ libvirt.VIR_DOMAIN_BLOCKED: gtk.gdk.pixbuf_new_from_file_at_size(self.get_icon_dir() + "/state_running.png", 32, 32),
|
||||
+ libvirt.VIR_DOMAIN_CRASHED: gtk.gdk.pixbuf_new_from_file_at_size(self.get_icon_dir() + "/state_crashed.png", 32, 32),
|
||||
+ libvirt.VIR_DOMAIN_PAUSED: gtk.gdk.pixbuf_new_from_file_at_size(self.get_icon_dir() + "/state_paused.png", 32, 32),
|
||||
+ libvirt.VIR_DOMAIN_RUNNING: gtk.gdk.pixbuf_new_from_file_at_size(self.get_icon_dir() + "/state_running.png", 32, 32),
|
||||
+ libvirt.VIR_DOMAIN_SHUTDOWN: gtk.gdk.pixbuf_new_from_file_at_size(self.get_icon_dir() + "/state_shutoff.png", 32, 32),
|
||||
+ libvirt.VIR_DOMAIN_SHUTOFF: gtk.gdk.pixbuf_new_from_file_at_size(self.get_icon_dir() + "/state_shutoff.png", 32, 32),
|
||||
+ libvirt.VIR_DOMAIN_NOSTATE: gtk.gdk.pixbuf_new_from_file_at_size(self.get_icon_dir() + "/state_running.png", 32, 32),
|
||||
+ }
|
||||
+
|
||||
props = { gnome.PARAM_APP_DATADIR : self.get_data_dir()}
|
||||
gnome.program_init(self.get_appname(), self.get_appversion(), \
|
||||
properties=props)
|
||||
@@ -100,6 +109,9 @@
|
||||
def get_vm_status_icon(self, state):
|
||||
return self.status_icons[state]
|
||||
|
||||
+ def get_vm_status_icon_large(self, state):
|
||||
+ return self.status_icons_large[state]
|
||||
+
|
||||
def get_shutdown_icon_name(self):
|
||||
theme = gtk.icon_theme_get_default()
|
||||
if theme.has_icon("system-shutdown"):
|
||||
diff -r 1c886d1863f7 -r a6f055361d16 src/virtManager/domain.py
|
||||
--- a/src/virtManager/domain.py Wed Sep 16 16:02:19 2009 -0400
|
||||
+++ b/src/virtManager/domain.py Thu Sep 17 11:24:18 2009 -0400
|
||||
@@ -728,6 +728,8 @@
|
||||
|
||||
def run_status_icon(self):
|
||||
return self.config.get_vm_status_icon(self.status())
|
||||
+ def run_status_icon_large(self):
|
||||
+ return self.config.get_vm_status_icon_large(self.status())
|
||||
|
||||
def _is_serial_console_tty_accessible(self, path):
|
||||
# pty serial scheme doesn't work over remote
|
||||
diff -r 1c886d1863f7 -r a6f055361d16 src/virtManager/manager.py
|
||||
--- a/src/virtManager/manager.py Wed Sep 16 16:02:19 2009 -0400
|
||||
+++ b/src/virtManager/manager.py Thu Sep 17 11:24:18 2009 -0400
|
||||
@@ -493,7 +493,7 @@
|
||||
row.insert(ROW_NAME, vm.get_name())
|
||||
row.insert(ROW_MARKUP, row[ROW_NAME])
|
||||
row.insert(ROW_STATUS, vm.run_status())
|
||||
- row.insert(ROW_STATUS_ICON, vm.run_status_icon())
|
||||
+ row.insert(ROW_STATUS_ICON, vm.run_status_icon_large())
|
||||
row.insert(ROW_KEY, vm.get_uuid())
|
||||
row.insert(ROW_HINT, None)
|
||||
row.insert(ROW_IS_CONN, False)
|
||||
@@ -575,7 +575,7 @@
|
||||
|
||||
row = self.rows[self.vm_row_key(vm)]
|
||||
row[ROW_STATUS] = vm.run_status()
|
||||
- row[ROW_STATUS_ICON] = vm.run_status_icon()
|
||||
+ row[ROW_STATUS_ICON] = vm.run_status_icon_large()
|
||||
row[ROW_IS_VM_RUNNING] = vm.is_active()
|
||||
model.row_changed(row.path, row.iter)
|
||||
|
||||
@@ -850,7 +850,6 @@
|
||||
statusCol.add_attribute(status_icon, 'cell-background', ROW_COLOR)
|
||||
statusCol.add_attribute(status_icon, 'pixbuf', ROW_STATUS_ICON)
|
||||
statusCol.add_attribute(status_icon, 'visible', ROW_IS_VM)
|
||||
- statusCol.add_attribute(status_icon, 'sensitive', ROW_IS_VM_RUNNING)
|
||||
|
||||
name_txt = gtk.CellRendererText()
|
||||
nameCol.pack_start(name_txt, True)
|
||||
# HG changeset patch
|
||||
# User Cole Robinson <crobinso@redhat.com>
|
||||
# Date 1253205341 14400
|
||||
# Node ID cdbe1da3ce75a5ad06b8e07e891ac35d1b246685
|
||||
# Parent a6f055361d165bea5fbb3c62ec54a820987a7dde
|
||||
Change VM name text arrangement in manager view.
|
||||
|
||||
Shrink text size, add a second row that shows the VM status. Fills the
|
||||
display up a bit so it doesn't look so sparse.
|
||||
|
||||
diff -r a6f055361d16 -r cdbe1da3ce75 src/virtManager/manager.py
|
||||
--- a/src/virtManager/manager.py Thu Sep 17 11:24:18 2009 -0400
|
||||
+++ b/src/virtManager/manager.py Thu Sep 17 12:35:41 2009 -0400
|
||||
@@ -486,12 +486,26 @@
|
||||
else:
|
||||
self.emit("action-refresh-console", uri, vmuuid)
|
||||
|
||||
+ def _build_conn_markup(self, conn, row):
|
||||
+ if conn.state == conn.STATE_DISCONNECTED:
|
||||
+ markup = ("<span font='9' color='#5b5b5b'>%s - "
|
||||
+ "Not Connected</span>" % row[ROW_NAME])
|
||||
+ else:
|
||||
+ markup = ("<span font='9'>%s</span>" % row[ROW_NAME])
|
||||
+ return markup
|
||||
+
|
||||
+ def _build_vm_markup(self, vm, row):
|
||||
+ markup = ("<span font='10'>%s</span>\n"
|
||||
+ "<span font='9' color='#989898'>%s</span>" %
|
||||
+ (row[ROW_NAME], row[ROW_STATUS]))
|
||||
+ return markup
|
||||
+
|
||||
def _append_vm(self, model, vm, conn):
|
||||
parent = self.rows[conn.get_uri()].iter
|
||||
row = []
|
||||
row.insert(ROW_HANDLE, vm)
|
||||
row.insert(ROW_NAME, vm.get_name())
|
||||
- row.insert(ROW_MARKUP, row[ROW_NAME])
|
||||
+ row.insert(ROW_MARKUP, "")
|
||||
row.insert(ROW_STATUS, vm.run_status())
|
||||
row.insert(ROW_STATUS_ICON, vm.run_status_icon_large())
|
||||
row.insert(ROW_KEY, vm.get_uuid())
|
||||
@@ -502,6 +516,8 @@
|
||||
row.insert(ROW_IS_VM_RUNNING, vm.is_active())
|
||||
row.insert(ROW_COLOR, "white")
|
||||
|
||||
+ row[ROW_MARKUP] = self._build_vm_markup(vm, row)
|
||||
+
|
||||
_iter = model.append(parent, row)
|
||||
path = model.get_path(_iter)
|
||||
self.rows[self.vm_row_key(vm)] = model[path]
|
||||
@@ -512,12 +528,7 @@
|
||||
row = []
|
||||
row.insert(ROW_HANDLE, conn)
|
||||
row.insert(ROW_NAME, conn.get_pretty_desc_inactive(False))
|
||||
- if conn.state == conn.STATE_DISCONNECTED:
|
||||
- markup = ("<span font='9.5' color='#5b5b5b'>%s - "
|
||||
- "Not Connected</span>" % row[ROW_NAME])
|
||||
- else:
|
||||
- markup = ("<span font='9.5'>%s</span>" % row[ROW_NAME])
|
||||
- row.insert(ROW_MARKUP, markup)
|
||||
+ row.insert(ROW_MARKUP, self._build_conn_markup(conn, row))
|
||||
row.insert(ROW_STATUS, ("<span font='9'>%s</span>" %
|
||||
conn.get_state_text()))
|
||||
row.insert(ROW_STATUS_ICON, None)
|
||||
@@ -589,12 +600,7 @@
|
||||
model = vmlist.get_model()
|
||||
row = self.rows[conn.get_uri()]
|
||||
|
||||
- if conn.state == conn.STATE_DISCONNECTED:
|
||||
- markup = ("<span font='9.5' color='#5b5b5b'>%s - "
|
||||
- "Not Connected</span>" % row[ROW_NAME])
|
||||
- else:
|
||||
- markup = ("<span font='9.5'>%s</span>" % row[ROW_NAME])
|
||||
- row[ROW_MARKUP] = markup
|
||||
+ row[ROW_MARKUP] = self._build_conn_markup(conn, row)
|
||||
row[ROW_STATUS] = "<span font='9'>%s</span>" % conn.get_state_text()
|
||||
row[ROW_IS_CONN_CONNECTED] = conn.state != conn.STATE_DISCONNECTED
|
||||
|
||||
# HG changeset patch
|
||||
# User Cole Robinson <crobinso@redhat.com>
|
||||
# Date 1253201111 14400
|
||||
# Node ID 739a6876af4692d6f86d8813f6dd3aa046bf6a8b
|
||||
# Parent cdbe1da3ce75a5ad06b8e07e891ac35d1b246685
|
||||
Drop row coloring for managed connection rows.
|
||||
|
||||
Looks kind of funky with lots of dark colored rows for a user with multiple
|
||||
connections.
|
||||
|
||||
diff -r cdbe1da3ce75 -r 739a6876af46 src/virtManager/manager.py
|
||||
--- a/src/virtManager/manager.py Thu Sep 17 12:35:41 2009 -0400
|
||||
+++ b/src/virtManager/manager.py Thu Sep 17 11:25:11 2009 -0400
|
||||
@@ -49,8 +49,6 @@
|
||||
ROW_IS_CONN_CONNECTED = 8
|
||||
ROW_IS_VM = 9
|
||||
ROW_IS_VM_RUNNING = 10
|
||||
-ROW_COLOR = 11
|
||||
-ROW_HEIGHT = 12
|
||||
|
||||
# Columns in the tree view
|
||||
COL_NAME = 0
|
||||
@@ -514,7 +512,6 @@
|
||||
row.insert(ROW_IS_CONN_CONNECTED, True)
|
||||
row.insert(ROW_IS_VM, True)
|
||||
row.insert(ROW_IS_VM_RUNNING, vm.is_active())
|
||||
- row.insert(ROW_COLOR, "white")
|
||||
|
||||
row[ROW_MARKUP] = self._build_vm_markup(vm, row)
|
||||
|
||||
@@ -539,7 +536,6 @@
|
||||
conn.state != conn.STATE_DISCONNECTED)
|
||||
row.insert(ROW_IS_VM, False)
|
||||
row.insert(ROW_IS_VM_RUNNING, False)
|
||||
- row.insert(ROW_COLOR, "#d4d2d2")
|
||||
|
||||
_iter = model.append(None, row)
|
||||
path = model.get_path(_iter)
|
||||
@@ -823,9 +819,9 @@
|
||||
vmlist = self.window.get_widget("vm-list")
|
||||
|
||||
# Handle, name, markup, status, status icon, key/uuid, hint, is conn,
|
||||
- # is conn connected, is vm, is vm running, color
|
||||
+ # is conn connected, is vm, is vm running
|
||||
model = gtk.TreeStore(object, str, str, str, gtk.gdk.Pixbuf, str, str,
|
||||
- bool, bool, bool, bool, str)
|
||||
+ bool, bool, bool, bool)
|
||||
vmlist.set_model(model)
|
||||
util.tooltip_wrapper(vmlist, ROW_HINT, "set_tooltip_column")
|
||||
|
||||
@@ -834,7 +830,7 @@
|
||||
|
||||
nameCol = gtk.TreeViewColumn(_("Name"))
|
||||
nameCol.set_expand(True)
|
||||
- nameCol.set_spacing(12)
|
||||
+ nameCol.set_spacing(6)
|
||||
cpuUsageCol = gtk.TreeViewColumn(_("CPU usage"))
|
||||
cpuUsageCol.set_min_width(150)
|
||||
|
||||
@@ -853,13 +849,11 @@
|
||||
|
||||
status_icon = gtk.CellRendererPixbuf()
|
||||
statusCol.pack_start(status_icon, False)
|
||||
- statusCol.add_attribute(status_icon, 'cell-background', ROW_COLOR)
|
||||
statusCol.add_attribute(status_icon, 'pixbuf', ROW_STATUS_ICON)
|
||||
statusCol.add_attribute(status_icon, 'visible', ROW_IS_VM)
|
||||
|
||||
name_txt = gtk.CellRendererText()
|
||||
nameCol.pack_start(name_txt, True)
|
||||
- nameCol.add_attribute(name_txt, 'cell-background', ROW_COLOR)
|
||||
nameCol.add_attribute(name_txt, 'markup', ROW_MARKUP)
|
||||
nameCol.set_sort_column_id(VMLIST_SORT_NAME)
|
||||
|
||||
@@ -870,9 +864,7 @@
|
||||
cpuUsage_img.set_property("reversed", True)
|
||||
cpuUsageCol.pack_start(cpuUsage_img, True)
|
||||
cpuUsageCol.pack_start(cpuUsage_txt, False)
|
||||
- cpuUsageCol.add_attribute(cpuUsage_img, 'cell-background', ROW_COLOR)
|
||||
cpuUsageCol.add_attribute(cpuUsage_img, 'visible', ROW_IS_VM)
|
||||
- cpuUsageCol.add_attribute(cpuUsage_txt, 'cell-background', ROW_COLOR)
|
||||
cpuUsageCol.add_attribute(cpuUsage_txt, 'visible', ROW_IS_CONN)
|
||||
cpuUsageCol.set_sort_column_id(VMLIST_SORT_STATS)
|
||||
self.stats_sparkline = cpuUsage_img
|
60
virt-manager-0.8.0-stats-logging.patch
Normal file
60
virt-manager-0.8.0-stats-logging.patch
Normal file
@ -0,0 +1,60 @@
|
||||
# HG changeset patch
|
||||
# User Cole Robinson <crobinso@redhat.com>
|
||||
# Date 1253131314 14400
|
||||
# Node ID 9242a7fe76b16c6505bdd3d3d328ae8f0c56da10
|
||||
# Parent 6aa2dc9ada0c43e19680af5b922cd643e35602d0
|
||||
Better logging and error avoidance with net/disk stats routines.
|
||||
|
||||
diff -r 6aa2dc9ada0c -r 9242a7fe76b1 src/virtManager/domain.py
|
||||
--- a/src/virtManager/domain.py Wed Sep 16 16:00:47 2009 -0400
|
||||
+++ b/src/virtManager/domain.py Wed Sep 16 16:01:54 2009 -0400
|
||||
@@ -337,8 +337,12 @@
|
||||
return rx, tx
|
||||
|
||||
for netdev in self.get_network_devices(refresh_if_necc=False):
|
||||
+ dev = netdev[4]
|
||||
+ if not dev:
|
||||
+ continue
|
||||
+
|
||||
try:
|
||||
- io = self.vm.interfaceStats(netdev[4])
|
||||
+ io = self.vm.interfaceStats(dev)
|
||||
if io:
|
||||
rx += io[0]
|
||||
tx += io[4]
|
||||
@@ -347,7 +351,9 @@
|
||||
logging.debug("Net stats not supported: %s" % err)
|
||||
self._stats_net_supported = False
|
||||
else:
|
||||
- logging.error("Error reading net stats: %s" % err)
|
||||
+ logging.error("Error reading net stats for "
|
||||
+ "'%s' dev '%s': %s" %
|
||||
+ (self.get_name(), dev, err))
|
||||
return rx, tx
|
||||
|
||||
def _sample_disk_io_dummy(self):
|
||||
@@ -360,8 +366,12 @@
|
||||
return rd, wr
|
||||
|
||||
for disk in self.get_disk_devices(refresh_if_necc=False):
|
||||
+ dev = disk[2]
|
||||
+ if not dev:
|
||||
+ continue
|
||||
+
|
||||
try:
|
||||
- io = self.vm.blockStats(disk[2])
|
||||
+ io = self.vm.blockStats(dev)
|
||||
if io:
|
||||
rd += io[1]
|
||||
wr += io[3]
|
||||
@@ -370,7 +380,9 @@
|
||||
logging.debug("Disk stats not supported: %s" % err)
|
||||
self._stats_disk_supported = False
|
||||
else:
|
||||
- logging.error("Error reading disk stats: %s" % err)
|
||||
+ logging.error("Error reading disk stats for "
|
||||
+ "'%s' dev '%s': %s" %
|
||||
+ (self.get_name(), dev, err))
|
||||
return rd, wr
|
||||
|
||||
def _get_cur_rate(self, what):
|
@ -8,13 +8,16 @@
|
||||
|
||||
Name: virt-manager
|
||||
Version: 0.8.0
|
||||
Release: 3%{_extra_release}
|
||||
Release: 4%{_extra_release}
|
||||
Summary: Virtual Machine Manager
|
||||
|
||||
Group: Applications/Emulators
|
||||
License: GPLv2+
|
||||
URL: http://virt-manager.org/
|
||||
Source0: http://virt-manager.org/download/sources/%{name}/%{name}-%{version}.tar.gz
|
||||
Source1: state_paused.png
|
||||
Source2: state_running.png
|
||||
Source3: state_shutoff.png
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||
BuildArch: noarch
|
||||
# Fix disk XML mangling via connect/eject cdrom (bz 516116)
|
||||
@ -27,6 +30,12 @@ Patch3: %{name}-%{version}-newvm-storage-cb.patch
|
||||
Patch4: %{name}-%{version}-addhw-errmsg-typo.patch
|
||||
# Fixes for pylint script to return nicer results on F11/F12
|
||||
Patch5: %{name}-%{version}-pylint-tweak.patch
|
||||
# Don't close libvirt connection for non-fatal errors (bz 522168)
|
||||
Patch6: /home/boston/crobinso/virt-manager-0.8.0-conn-close-exception.patch
|
||||
# Manager UI tweaks
|
||||
Patch7: /home/boston/crobinso/virt-manager-0.8.0-manager-ui-tweaks.patch
|
||||
# Generate better errors is disk/net stats polling fails
|
||||
Patch8: /home/boston/crobinso/virt-manager-0.8.0-stats-logging.patch
|
||||
|
||||
# These two are just the oldest version tested
|
||||
Requires: pygtk2 >= 1.99.12-6
|
||||
@ -91,11 +100,17 @@ management API.
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
cp %{SOURCE1} pixmaps
|
||||
cp %{SOURCE2} pixmaps
|
||||
cp %{SOURCE3} pixmaps
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
%patch5 -p1
|
||||
%patch6 -p1
|
||||
%patch7 -p1
|
||||
%patch8 -p1
|
||||
|
||||
%build
|
||||
%configure
|
||||
@ -169,6 +184,11 @@ fi
|
||||
%{_datadir}/dbus-1/services/%{name}.service
|
||||
|
||||
%changelog
|
||||
* Thu Sep 17 2009 Cole Robinson <crobinso@redhat.com> - 0.8.0-4.fc12
|
||||
- Don't close libvirt connection for non-fatal errors (bz 522168)
|
||||
- Manager UI tweaks
|
||||
- Generate better errors if disk/net stats polling fails
|
||||
|
||||
* Mon Sep 14 2009 Cole Robinson <crobinso@redhat.com> - 0.8.0-3.fc12
|
||||
- Fix disk XML mangling via connect/eject cdrom (bz 516116)
|
||||
- Fix delete button sensitivity (bz 518536)
|
||||
|
Loading…
Reference in New Issue
Block a user