340 lines
12 KiB
RPMSpec
340 lines
12 KiB
RPMSpec
%global service ironic-inspector
|
|
%global modulename ironic_inspector
|
|
%{!?upstream_version: %global upstream_version %{version}}
|
|
|
|
%global with_tests 0
|
|
|
|
Name: openstack-ironic-inspector
|
|
Summary: Hardware introspection service for OpenStack Ironic
|
|
Version: 9.2.4
|
|
Release: 4
|
|
License: ASL 2.0
|
|
URL: https://launchpad.net/ironic-inspector
|
|
|
|
Source0: https://tarballs.openstack.org/%{service}/%{service}-%{version}.tar.gz
|
|
Source1: openstack-ironic-inspector.service
|
|
Source2: openstack-ironic-inspector-dnsmasq.service
|
|
Source3: dnsmasq.conf
|
|
Source4: ironic-inspector-rootwrap-sudoers
|
|
Source5: ironic-inspector.logrotate
|
|
Source6: ironic-inspector-dist.conf
|
|
Source7: openstack-ironic-inspector-conductor.service
|
|
Patch0: 0001-Use-latest-version-of-python-construct.patch
|
|
|
|
BuildArch: noarch
|
|
|
|
BuildRequires: git-core
|
|
BuildRequires: openstack-macros
|
|
BuildRequires: python3-devel
|
|
BuildRequires: python3-pbr
|
|
BuildRequires: python3-stestr
|
|
BuildRequires: systemd
|
|
# All these are required to run tests during check step
|
|
BuildRequires: python3-mock
|
|
BuildRequires: python3-alembic
|
|
BuildRequires: python3-automaton
|
|
BuildRequires: python3-eventlet
|
|
BuildRequires: python3-fixtures
|
|
BuildRequires: python3-futurist
|
|
BuildRequires: python3-ironicclient
|
|
BuildRequires: python3-jsonschema
|
|
BuildRequires: python3-keystoneauth1
|
|
BuildRequires: python3-keystonemiddleware
|
|
BuildRequires: python3-netaddr
|
|
BuildRequires: python3-oslo-concurrency
|
|
BuildRequires: python3-oslo-config
|
|
BuildRequires: python3-oslo-context
|
|
BuildRequires: python3-oslo-db
|
|
BuildRequires: python3-oslo-i18n
|
|
BuildRequires: python3-oslo-log
|
|
BuildRequires: python3-oslo-messaging
|
|
BuildRequires: python3-oslo-middleware
|
|
BuildRequires: python3-oslo-policy
|
|
BuildRequires: python3-oslo-serialization
|
|
BuildRequires: python3-oslo-utils
|
|
BuildRequires: python3-oslotest
|
|
BuildRequires: python3-six
|
|
BuildRequires: python3-sqlalchemy
|
|
BuildRequires: python3-stevedore
|
|
BuildRequires: python3-openstacksdk
|
|
BuildRequires: python3-testscenarios
|
|
BuildRequires: python3-testresources
|
|
BuildRequires: python3-tooz
|
|
BuildRequires: python3-construct
|
|
BuildRequires: python3-flask
|
|
BuildRequires: python3-ironic-lib
|
|
BuildRequires: python3-jsonpath-rw
|
|
BuildRequires: python3-retrying
|
|
BuildRequires: python3-pytz
|
|
|
|
Requires: openstack-ironic-inspector-api
|
|
Requires: openstack-ironic-inspector-conductor
|
|
Requires: openstack-ironic-inspector-dnsmasq
|
|
|
|
Provides: openstack-ironic-discoverd = %{upstream_version}
|
|
|
|
%description
|
|
Ironic Inspector is an auxiliary service for discovering hardware properties
|
|
for a node managed by OpenStack Ironic. Hardware introspection or hardware
|
|
properties discovery is a process of getting hardware parameters required for
|
|
scheduling from a bare metal node, given its power management credentials
|
|
(e.g. IPMI address, user name and password).
|
|
|
|
This package contains Python modules and an ironic-inspector service combining
|
|
API and conductor in one binary.
|
|
|
|
%package -n openstack-ironic-inspector-dnsmasq
|
|
Summary: DHCP service for ironic-inspector using dnsmasq
|
|
|
|
Requires: openstack-ironic-inspector-common = %{version}-%{release}
|
|
Requires: dnsmasq
|
|
|
|
%description -n openstack-ironic-inspector-dnsmasq
|
|
Ironic Inspector is an auxiliary service for discovering hardware properties
|
|
for a node managed by OpenStack Ironic. Hardware introspection or hardware
|
|
properties discovery is a process of getting hardware parameters required for
|
|
scheduling from a bare metal node, given its power management credentials
|
|
(e.g. IPMI address, user name and password).
|
|
|
|
This package contains a dnsmasq service pre-configured for using with
|
|
ironic-inspector.
|
|
|
|
%package -n openstack-ironic-inspector-conductor
|
|
Summary: Conductor service for Ironic Inspector.
|
|
|
|
Requires: openstack-ironic-inspector-common = %{version}-%{release}
|
|
|
|
%description -n openstack-ironic-inspector-conductor
|
|
Ironic Inspector is an auxiliary service for discovering hardware properties
|
|
for a node managed by OpenStack Ironic. Hardware introspection or hardware
|
|
properties discovery is a process of getting hardware parameters required for
|
|
scheduling from a bare metal node, given its power management credentials
|
|
(e.g. IPMI address, user name and password).
|
|
|
|
This package contains an ironic-inspector conductor service, which can be used
|
|
to split ironic-inspector into API and conductor processes.
|
|
|
|
%package -n openstack-ironic-inspector-api
|
|
Summary: WSGI service service for Ironic Inspector.
|
|
|
|
Requires: openstack-ironic-inspector-common = %{version}-%{release}
|
|
|
|
%description -n openstack-ironic-inspector-api
|
|
Ironic Inspector is an auxiliary service for discovering hardware properties
|
|
for a node managed by OpenStack Ironic. Hardware introspection or hardware
|
|
properties discovery is a process of getting hardware parameters required for
|
|
scheduling from a bare metal node, given its power management credentials
|
|
(e.g. IPMI address, user name and password).
|
|
|
|
This package contains an ironic-inspector WSGI service, which can be used
|
|
to split ironic-inspector into API and conductor processes.
|
|
|
|
%package -n openstack-ironic-inspector-common
|
|
Summary: Contains the common files required by the service
|
|
|
|
Requires: python3-%{service} = %{version}-%{release}
|
|
|
|
%description -n openstack-ironic-inspector-common
|
|
Contains the common files required by the service
|
|
|
|
%package -n python3-%{service}
|
|
Summary: %{service} source code
|
|
|
|
%{?systemd_requires}
|
|
|
|
Requires: python3-alembic
|
|
Requires: python3-automaton
|
|
Requires: python3-construct
|
|
Requires: python3-eventlet
|
|
Requires: python3-flask
|
|
Requires: python3-futurist
|
|
Requires: python3-ironic-lib
|
|
Requires: python3-jsonpath-rw
|
|
Requires: python3-jsonschema
|
|
Requires: python3-keystoneauth1
|
|
Requires: python3-keystonemiddleware
|
|
Requires: python3-netaddr
|
|
Requires: python3-openstacksdk
|
|
Requires: python3-oslo-concurrency
|
|
Requires: python3-oslo-config
|
|
Requires: python3-oslo-context
|
|
Requires: python3-oslo-db
|
|
Requires: python3-oslo-i18n
|
|
Requires: python3-oslo-log
|
|
Requires: python3-oslo-messaging
|
|
Requires: python3-oslo-middleware
|
|
Requires: python3-oslo-policy
|
|
Requires: python3-oslo-rootwrap
|
|
Requires: python3-oslo-serialization
|
|
Requires: python3-oslo-service
|
|
Requires: python3-oslo-utils
|
|
Requires: python3-pbr
|
|
Requires: python3-pytz
|
|
Requires: python3-sqlalchemy
|
|
Requires: python3-stevedore
|
|
Requires: python3-tooz
|
|
Requires: python3-tenacity
|
|
Requires: python3-yaml
|
|
Requires: python3-oslo-upgradecheck
|
|
|
|
%description -n python3-%{service}
|
|
It contains the project python source code
|
|
|
|
%package -n python3-%{service}-tests
|
|
Summary: %{service} Unit Tests
|
|
%{?python_provide:%python_provide python2-%{service}-tests}
|
|
|
|
Requires: python3-%{service} = %{version}-%{release}
|
|
|
|
%description -n python3-%{service}-tests
|
|
It contains the unit tests
|
|
|
|
%prep
|
|
%autosetup -v -p1 -n %{service}-%{upstream_version}
|
|
# Remove the requirements file so that pbr hooks don't add it
|
|
# to distutils requires_dist config
|
|
%py_req_cleanup
|
|
|
|
%build
|
|
%{py3_build}
|
|
|
|
%install
|
|
%{py3_install}
|
|
|
|
mkdir -p %{buildroot}%{_mandir}/man8
|
|
install -p -D -m 644 ironic-inspector.8 %{buildroot}%{_mandir}/man8/
|
|
|
|
# logs configuration
|
|
install -d -m 750 %{buildroot}%{_localstatedir}/log/ironic-inspector
|
|
install -d -m 750 %{buildroot}%{_localstatedir}/log/ironic-inspector/ramdisk
|
|
install -p -D -m 644 %{SOURCE5} %{buildroot}%{_sysconfdir}/logrotate.d/openstack-ironic-inspector
|
|
|
|
# install systemd scripts
|
|
mkdir -p %{buildroot}%{_unitdir}
|
|
install -p -D -m 644 %{SOURCE1} %{buildroot}%{_unitdir}
|
|
install -p -D -m 644 %{SOURCE2} %{buildroot}%{_unitdir}
|
|
install -p -D -m 644 %{SOURCE7} %{buildroot}%{_unitdir}
|
|
|
|
# install sudoers file
|
|
mkdir -p %{buildroot}%{_sysconfdir}/sudoers.d
|
|
install -p -D -m 440 %{SOURCE4} %{buildroot}%{_sysconfdir}/sudoers.d/ironic-inspector
|
|
|
|
# generate example configuration files
|
|
install -d -m 750 %{buildroot}%{_sysconfdir}/ironic-inspector
|
|
export PYTHONPATH=.
|
|
oslo-config-generator --config-file tools/config-generator.conf --output-file %{buildroot}/%{_sysconfdir}/ironic-inspector/inspector.conf
|
|
oslopolicy-sample-generator --config-file tools/policy-generator.conf --output-file %{buildroot}/%{_sysconfdir}/ironic-inspector/policy.json
|
|
|
|
# configuration contains passwords, thus 640
|
|
chmod 0640 %{buildroot}/%{_sysconfdir}/ironic-inspector/inspector.conf
|
|
install -p -D -m 640 %{SOURCE6} %{buildroot}/%{_sysconfdir}/ironic-inspector/inspector-dist.conf
|
|
install -p -D -m 644 %{SOURCE3} %{buildroot}/%{_sysconfdir}/ironic-inspector/dnsmasq.conf
|
|
|
|
# rootwrap configuration
|
|
mkdir -p %{buildroot}%{_sysconfdir}/ironic-inspector/rootwrap.d
|
|
install -p -D -m 640 rootwrap.conf %{buildroot}/%{_sysconfdir}/ironic-inspector/rootwrap.conf
|
|
install -p -D -m 640 rootwrap.d/* %{buildroot}/%{_sysconfdir}/ironic-inspector/rootwrap.d/
|
|
|
|
# shared state directory
|
|
mkdir -p %{buildroot}%{_sharedstatedir}/ironic-inspector
|
|
|
|
# shared state directory for the dnsmasq PXE filter and the dnsmasq service
|
|
mkdir -p %{buildroot}%{_sharedstatedir}/ironic-inspector/dhcp-hostsdir
|
|
|
|
|
|
%check
|
|
%if 0%{?with_tests}
|
|
PYTHON=%{__python3} stestr run --test-path ironic_inspector.test.unit
|
|
%endif
|
|
|
|
%files
|
|
%doc README.rst
|
|
%license LICENSE
|
|
%doc %{_mandir}/man8/ironic-inspector.8.gz
|
|
|
|
%files -n openstack-ironic-inspector-dnsmasq
|
|
%license LICENSE
|
|
%{_unitdir}/openstack-ironic-inspector-dnsmasq.service
|
|
|
|
%files -n openstack-ironic-inspector-conductor
|
|
%license LICENSE
|
|
%{_bindir}/ironic-inspector-conductor
|
|
%{_unitdir}/openstack-ironic-inspector-conductor.service
|
|
|
|
%files -n openstack-ironic-inspector-api
|
|
%license LICENSE
|
|
%{_bindir}/ironic-inspector-api-wsgi
|
|
|
|
%files -n openstack-ironic-inspector-common
|
|
%license LICENSE
|
|
%config(noreplace) %attr(-,root,ironic-inspector) %{_sysconfdir}/ironic-inspector
|
|
%config(noreplace) %{_sysconfdir}/logrotate.d/openstack-ironic-inspector
|
|
%{_sysconfdir}/sudoers.d/ironic-inspector
|
|
%{_bindir}/ironic-inspector
|
|
%{_bindir}/ironic-inspector-rootwrap
|
|
%{_bindir}/ironic-inspector-dbsync
|
|
%{_bindir}/ironic-inspector-migrate-data
|
|
%{_unitdir}/openstack-ironic-inspector.service
|
|
%attr(-,ironic-inspector,ironic-inspector) %{_sharedstatedir}/ironic-inspector
|
|
%attr(-,ironic-inspector,ironic-inspector) %{_sharedstatedir}/ironic-inspector/dhcp-hostsdir
|
|
%attr(-,ironic-inspector,ironic-inspector) %{_localstatedir}/log/ironic-inspector
|
|
%attr(-,ironic-inspector,ironic-inspector) %{_localstatedir}/log/ironic-inspector/ramdisk/
|
|
|
|
%files -n python3-%{service}
|
|
%license LICENSE
|
|
%{python3_sitelib}/%{modulename}
|
|
%{python3_sitelib}/%{modulename}-*.egg-info
|
|
%exclude %{python3_sitelib}/%{modulename}/test
|
|
%exclude %{python3_sitelib}/%{modulename}_tests.egg-info
|
|
|
|
%files -n python3-%{service}-tests
|
|
%license LICENSE
|
|
%{python3_sitelib}/%{modulename}/test
|
|
|
|
%pre common
|
|
getent group ironic-inspector >/dev/null || groupadd -r ironic-inspector
|
|
getent passwd ironic-inspector >/dev/null || \
|
|
useradd -r -g ironic-inspector -d %{_sharedstatedir}/ironic-inspector -s /sbin/nologin \
|
|
-c "OpenStack Ironic Inspector Daemons" ironic-inspector
|
|
exit 0
|
|
|
|
%post
|
|
%systemd_post openstack-ironic-inspector.service
|
|
|
|
%post -n openstack-ironic-inspector-dnsmasq
|
|
%systemd_post openstack-ironic-inspector-dnsmasq.service
|
|
|
|
%post -n openstack-ironic-inspector-conductor
|
|
%systemd_post openstack-ironic-inspector-conductor.service
|
|
|
|
%preun
|
|
%systemd_preun openstack-ironic-inspector.service
|
|
|
|
%preun -n openstack-ironic-inspector-dnsmasq
|
|
%systemd_preun openstack-ironic-inspector-dnsmasq.service
|
|
|
|
%preun -n openstack-ironic-inspector-conductor
|
|
%systemd_preun openstack-ironic-inspector-conductor.service
|
|
|
|
%postun
|
|
%systemd_postun_with_restart openstack-ironic-inspector.service
|
|
|
|
%postun -n openstack-ironic-inspector-dnsmasq
|
|
%systemd_postun_with_restart openstack-ironic-inspector-dnsmasq.service
|
|
|
|
%postun -n openstack-ironic-inspector-conductor
|
|
%systemd_postun_with_restart openstack-ironic-inspector-conductor.service
|
|
|
|
%changelog
|
|
* Fri Apr 01 2022 lijiawei <ljw1101.vip@gmail.com> -9.2.4-4
|
|
- Fix the creation of user and group
|
|
|
|
* Tue Mar 22 2022 zhangy1317 <zhangy1317@chinaunicom.cn> -9.2.4-3
|
|
- Fix latest version of python construct
|
|
|
|
* Fri Nov 12 2021 wangxiyuan <wangxiyuan1007@gmail.com> - 9.2.4-2
|
|
- Fix build issue
|
|
|
|
* Mon Nov 8 2021 huangtianhua<huangtianhua@huawei.com> - 9.2.4-1
|
|
- Init openstack-ironic-inspector with 9.2.4 for Train
|