From cccd63ea9358db0f2cc2ce9ff4ca806c379b25d1 Mon Sep 17 00:00:00 2001 From: Juan Orti Alcaine Date: Jul 14 2019 18:15:45 +0000 Subject: Initial import (#1729696). --- diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..555968a --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/virtualbmc-1.5.0.tar.gz diff --git a/60-vbmcd.rules b/60-vbmcd.rules new file mode 100644 index 0000000..c521404 --- /dev/null +++ b/60-vbmcd.rules @@ -0,0 +1,8 @@ +polkit.addRule(function(action, subject) { + if (action.id == "org.libvirt.unix.manage" && + subject.user == "vbmcd") { + return polkit.Result.YES; + polkit.log("action=" + action); + polkit.log("subject=" + subject); + } +}); diff --git a/python-virtualbmc.spec b/python-virtualbmc.spec new file mode 100644 index 0000000..3630b05 --- /dev/null +++ b/python-virtualbmc.spec @@ -0,0 +1,130 @@ +%global srcname virtualbmc + +Name: python-%{srcname} +Version: 1.5.0 +Release: 4%{?dist} +Summary: A virtual BMC for controlling virtual machines using IPMI commands +License: ASL 2.0 +URL: https://github.com/openstack/virtualbmc +Source0: %{pypi_source} +Source1: 60-vbmcd.rules +Source2: vbmcd.service +BuildArch: noarch +BuildRequires: python3-devel +BuildRequires: python3-pbr +BuildRequires: python3-setuptools +BuildRequires: systemd-rpm-macros +# Documentation +BuildRequires: python3-sphinx +# Tests +BuildRequires: python3-stestr +BuildRequires: python3-libvirt +BuildRequires: python3-mock +BuildRequires: python3-pyghmi +BuildRequires: python3-zmq +BuildRequires: python3-oslotest + +%description +A virtual BMC for controlling virtual machines using IPMI commands. + +%package -n python3-%{srcname} +Summary: A virtual BMC for controlling virtual machines using IPMI commands +Suggests: python3-%{srcname}-doc +Requires(pre): shadow-utils +%{?python_provide:%python_provide python3-%{srcname}} + +%description -n python3-%{srcname} +A virtual BMC for controlling virtual machines using IPMI commands. + +%package -n python3-%{srcname}-tests +Summary: VirtualBMC tests +Requires: python3-%{srcname} = %{version}-%{release} + +%description -n python3-%{srcname}-tests +Tests for VirtualBMC. + +%package -n python3-%{srcname}-doc +Summary: VirtualBMC documentation + +%description -n python3-%{srcname}-doc +Documentation for VirtualBMC. + +%prep +%autosetup -n %{srcname}-%{version} + +%build +%py3_build + +# generate html docs +%{__python3} setup.py build_sphinx -b html +# remove the sphinx-build leftovers +rm -rf doc/build/html/.{doctrees,buildinfo} + +%install +%py3_install +install -D -m 0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/polkit-1/rules.d/60-vbmcd.rules +install -D -m 0644 %{SOURCE2} %{buildroot}%{_unitdir}/vbmcd.service +install -d -m 750 %{buildroot}%{_sharedstatedir}/vbmcd + +%check +PYTHON=%{__python3} stestr run + +%pre -n python3-%{srcname} +getent group vbmcd >/dev/null || groupadd -r vbmcd +getent passwd vbmcd >/dev/null || \ + useradd -r -g vbmcd -d %{_sharedstatedir}/vbmcd -s /sbin/nologin \ + -c "VirtualBMC daemon" vbmcd +exit 0 + +%post -n python3-%{srcname} +%systemd_post vbmcd.service + +%preun -n python3-%{srcname} +%systemd_preun vbmcd.service + +%postun -n python3-%{srcname} +%systemd_postun_with_restart vbmcd.service + +%files -n python3-%{srcname} +%license LICENSE +%{_bindir}/vbmcd +%{_bindir}/vbmc +%{python3_sitelib}/%{srcname} +%{python3_sitelib}/%{srcname}-*.egg-info +%exclude %{python3_sitelib}/%{srcname}/tests +%config(noreplace) %{_sysconfdir}/polkit-1/rules.d/60-vbmcd.rules +%{_unitdir}/vbmcd.service +%dir %attr(750, vbmcd, vbmcd) %{_sharedstatedir}/vbmcd + +%files -n python3-%{srcname}-tests +%license LICENSE +%{python3_sitelib}/%{srcname}/tests + +%files -n python3-%{srcname}-doc +%license LICENSE +%doc README.rst HACKING.rst CONTRIBUTING.rst ChangeLog +%doc doc/build/html + +%changelog +* Sun Jul 14 2019 Juan Orti Alcaine - 1.5.0-4 +- Fix tests for Fedora 30 + +* Sun Jul 14 2019 Juan Orti Alcaine - 1.5.0-3 +- Include html docs +- Run tests + +* Thu Jul 11 2019 Juan Orti Alcaine - 1.5.0-2 +- Include polkit and service unit + +* Wed Jul 10 2019 Juan Orti Alcaine - 1.5.0-1 +- Build only for Python3 +- Version 1.5.0 + +* Tue Feb 13 2018 Maxim Burgerhout - 1.2.0-2 +- First build for Fedora 27 copr + +* Tue Aug 22 2017 Alfredo Moralejo - 1.2.0-1 +- Update to 1.2.0 + +* Tue Nov 15 2016 Lucas Alvares Gomes - 0.1.0-1 +- Initial package. diff --git a/sources b/sources new file mode 100644 index 0000000..0cf4104 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (virtualbmc-1.5.0.tar.gz) = fb21d14f2ac0e15df22aff7b403ff72c484c9c9b8f02bea483e19b28848c98830d66a80f965e9684fa6ca8fcf2f9947a17f9bc526563f9d572f4d690b4da9ef6 diff --git a/vbmcd.service b/vbmcd.service new file mode 100644 index 0000000..5125fbf --- /dev/null +++ b/vbmcd.service @@ -0,0 +1,23 @@ +[Unit] +Description=VirtualBMC daemon +Documentation=https://docs.openstack.org/virtualbmc/latest/user/index.html +After=libvirtd.service +After=network.target + +[Service] +Type=simple +User=vbmcd +Group=vbmcd +WorkingDirectory=/var/lib/vbmcd +ExecStart=/usr/bin/vbmcd --foreground +ProtectSystem=full +ProtectHome=true +PrivateTmp=true +CapabilityBoundingSet= +NoNewPrivileges=true +ProtectKernelTunables=true +ProtectKernelModules=true +ProtectControlGroups=true + +[Install] +WantedBy=multi-user.target