From 837d9eb4ed203ec917c09c880f83362e0965172d Mon Sep 17 00:00:00 2001
From: Pádraig Brady
Date: Sep 24 2012 13:09:30 +0000
Subject: Support newer polkit config format to allow communication with libvirtd
Note polkit-0.104 in Fedora 17 doesn't support the newer
format config of polkit-0.106 in Fedora 18.
Therefore we ship both formats for the moment.
The new rules are from Federico Simoncelli
Fixes bug #858311
---
diff --git a/nova-polkit.rules b/nova-polkit.rules
new file mode 100644
index 0000000..5a9df09
--- /dev/null
+++ b/nova-polkit.rules
@@ -0,0 +1,8 @@
+# openstack-nova libvirt management permissions
+
+polkit.addRule(function(action, subject) {
+ if (action.id == "org.libvirt.unix.manage" &&
+ subject.user == "nova") {
+ return polkit.Result.YES;
+ }
+});
diff --git a/openstack-nova.spec b/openstack-nova.spec
index e948c64..c462383 100644
--- a/openstack-nova.spec
+++ b/openstack-nova.spec
@@ -26,6 +26,7 @@ Source20: openstack-nova-consoleauth.service
Source25: openstack-nova-metadata-api.service
Source21: nova-polkit.pkla
+Source23: nova-polkit.rules
Source22: nova-ifc-template
Source24: nova-sudoers
@@ -433,8 +434,12 @@ install -p -D -m 644 %{SOURCE22} %{buildroot}%{_datarootdir}/nova/interfaces.tem
mkdir -p %{buildroot}%{_datarootdir}/nova/rootwrap/
install -p -D -m 644 etc/nova/rootwrap.d/* %{buildroot}%{_datarootdir}/nova/rootwrap/
+# Older format. Remove when we no longer want to support Fedora 17 with master branch packages
install -d -m 755 %{buildroot}%{_sysconfdir}/polkit-1/localauthority/50-local.d
install -p -D -m 644 %{SOURCE21} %{buildroot}%{_sysconfdir}/polkit-1/localauthority/50-local.d/50-nova.pkla
+# Newer format since Fedora 18
+install -d -m 755 %{buildroot}%{_sysconfdir}/polkit-1/rules.d
+install -p -D -m 644 %{SOURCE23} %{buildroot}%{_sysconfdir}/polkit-1/rules.d/50-nova.rules
# Remove unneeded in production stuff
rm -f %{buildroot}%{_bindir}/nova-debug
@@ -640,6 +645,7 @@ fi
%config(noreplace) %{_sysconfdir}/logrotate.d/openstack-nova
%config(noreplace) %{_sysconfdir}/sudoers.d/nova
%config(noreplace) %{_sysconfdir}/polkit-1/localauthority/50-local.d/50-nova.pkla
+%config(noreplace) %{_sysconfdir}/polkit-1/rules.d/50-nova.rules
%dir %attr(0755, nova, root) %{_localstatedir}/log/nova
%dir %attr(0755, nova, root) %{_localstatedir}/run/nova
@@ -733,6 +739,7 @@ fi
%changelog
* Mon Sep 24 2012 Pádraig Brady - 2012.2-0.9.rc1
+- Support newer polkit config format to allow communication with libvirtd
* Fri Sep 21 2012 Pádraig Brady - 2012.2-0.8.rc1
- Update to folsom rc1