1 %global full_release ironic-%{version}
3 %{!?upstream_version: %global upstream_version %{version}%{?milestone}}
4 %global rdo_hash 399a4ca416f838d6fdc7f6c3bdbc28dd31058635
8 # https://review.openstack.org/#/q/I1a161b2c1d1e27268065b6b4be24c8f7a5315afb,n,z
10 Summary: OpenStack Baremetal Hypervisor API (ironic)
13 License: %{_platform_licence}
14 Vendor: Nokia and Openstack modified
15 URL: http://www.openstack.org
16 Source0: https://tarballs.openstack.org/ironic/ironic-%{version}.tar.gz
17 Source1: https://github.com/rdo-packages/ironic-distgit/archive/%{rdo_hash}.zip
19 Patch0: nokia/patches/0001-floppy-support.patch
22 BuildRequires: openstack-macros
23 BuildRequires: python2-setuptools
24 BuildRequires: python2-devel
25 BuildRequires: python2-pbr
26 BuildRequires: openssl-devel
27 BuildRequires: libxml2-devel
28 BuildRequires: libxslt-devel
29 BuildRequires: gmp-devel
30 BuildRequires: python2-sphinx
31 BuildRequires: systemd
32 # Required to compile translation files
33 BuildRequires: python2-babel
34 # Required to run unit tests
35 BuildRequires: pysendfile
36 BuildRequires: python2-alembic
37 BuildRequires: python2-automaton
38 BuildRequires: python2-cinderclient
39 BuildRequires: python-dracclient
40 BuildRequires: python2-eventlet
41 BuildRequires: python2-futurist
42 BuildRequires: python2-glanceclient
43 BuildRequires: python-ironic-inspector-client
44 BuildRequires: python-ironic-lib
45 BuildRequires: python2-jinja2
46 BuildRequires: python2-jsonpatch
47 BuildRequires: python2-jsonschema
48 BuildRequires: python2-keystoneauth1
49 BuildRequires: python2-keystonemiddleware
50 BuildRequires: python2-mock
51 BuildRequires: python2-neutronclient
52 BuildRequires: python2-oslo-concurrency
53 BuildRequires: python2-oslo-config
54 BuildRequires: python2-oslo-context
55 BuildRequires: python2-oslo-db
56 BuildRequires: python2-oslo-db-tests
57 BuildRequires: python2-oslo-i18n
58 BuildRequires: python2-oslo-log
59 BuildRequires: python2-oslo-messaging
60 BuildRequires: python2-oslo-middleware
61 BuildRequires: python2-oslo-policy
62 BuildRequires: python2-oslo-reports
63 BuildRequires: python2-oslo-rootwrap
64 BuildRequires: python2-oslo-serialization
65 BuildRequires: python2-oslo-service
66 BuildRequires: python2-oslo-utils
67 BuildRequires: python2-oslo-versionedobjects
68 BuildRequires: python2-oslotest
69 BuildRequires: python2-osprofiler
70 BuildRequires: /usr/bin/ostestr
71 BuildRequires: python2-os-traits
72 BuildRequires: python2-pbr
73 BuildRequires: python2-pecan
74 BuildRequires: python-proliantutils
75 BuildRequires: python2-psutil
76 BuildRequires: python2-requests
77 BuildRequires: python-retrying
78 BuildRequires: python2-scciclient
79 BuildRequires: python2-six
80 BuildRequires: python2-sqlalchemy
81 BuildRequires: python2-stevedore
82 BuildRequires: python2-sushy
83 BuildRequires: python2-swiftclient
84 BuildRequires: python2-testresources
85 BuildRequires: python2-testscenarios
86 BuildRequires: python2-testtools
87 BuildRequires: python2-tooz
88 BuildRequires: python-UcsSdk
89 BuildRequires: python-webob
90 BuildRequires: python2-wsme
91 BuildRequires: python2-pysnmp
92 BuildRequires: python2-pytz
95 %setup -q -n ironic-%{upstream_version}
96 %setup -T -D -a 1 -q -n ironic-%{upstream_version}
98 # Let RPM handle the requirements
100 # Remove tempest plugin entrypoint as a workaround
101 sed -i '/tempest/d' setup.cfg
102 rm -rf ironic_tempest_plugin
104 %{__python2} setup.py build
105 # Generate i18n files
106 %{__python2} setup.py compile_catalog -d build/lib/ironic/locale
109 %{__python2} setup.py install -O1 --skip-build --root=%{buildroot}
111 install -p -D -m 644 ironic-distgit-%{rdo_hash}/ironic.logrotate %{buildroot}%{_sysconfdir}/logrotate.d/openstack-ironic
113 # install systemd scripts
114 mkdir -p %{buildroot}%{_unitdir}
115 install -p -D -m 644 ironic-distgit-%{rdo_hash}/openstack-ironic-api.service %{buildroot}%{_unitdir}
116 install -p -D -m 644 ironic-distgit-%{rdo_hash}/openstack-ironic-conductor.service %{buildroot}%{_unitdir}
118 # install sudoers file
119 mkdir -p %{buildroot}%{_sysconfdir}/sudoers.d
120 install -p -D -m 440 ironic-distgit-%{rdo_hash}/ironic-rootwrap-sudoers %{buildroot}%{_sysconfdir}/sudoers.d/ironic
122 mkdir -p %{buildroot}%{_sharedstatedir}/ironic/
123 mkdir -p %{buildroot}%{_localstatedir}/log/ironic/
124 mkdir -p %{buildroot}%{_sysconfdir}/ironic/rootwrap.d
126 #Populate the conf dir
128 oslo-config-generator --config-file tools/config/ironic-config-generator.conf --output-file %{buildroot}/%{_sysconfdir}/ironic/ironic.conf
129 oslopolicy-sample-generator --config-file tools/policy/ironic-policy-generator.conf --output-file %{buildroot}/%{_sysconfdir}/ironic/policy.json
130 mv %{buildroot}%{_prefix}/etc/ironic/rootwrap.conf %{buildroot}/%{_sysconfdir}/ironic/rootwrap.conf
131 mv %{buildroot}%{_prefix}/etc/ironic/rootwrap.d/* %{buildroot}/%{_sysconfdir}/ironic/rootwrap.d/
132 # Remove duplicate config files under /usr/etc/ironic
133 rmdir %{buildroot}%{_prefix}/etc/ironic/rootwrap.d
134 rmdir %{buildroot}%{_prefix}/etc/ironic
136 # Install distribution config
137 install -p -D -m 640 ironic-distgit-%{rdo_hash}/ironic-dist.conf %{buildroot}/%{_datadir}/ironic/ironic-dist.conf
139 # Install i18n .mo files (.po and .pot are not required)
140 install -d -m 755 %{buildroot}%{_datadir}
141 rm -f %{buildroot}%{python2_sitelib}/ironic/locale/*/LC_*/ironic*po
142 rm -f %{buildroot}%{python2_sitelib}/ironic/locale/*pot
143 mv %{buildroot}%{python2_sitelib}/ironic/locale %{buildroot}%{_datadir}/locale
145 # Find language files
146 %find_lang ironic --all-name
149 ostestr --path ironic/tests/unit
152 Ironic provides an API for management and provisioning of physical machines
155 Summary: Ironic common
159 Requires: python2-alembic
160 Requires: python2-automaton >= 1.9.0
161 Requires: python2-cinderclient >= 3.3.0
162 Requires: python-dracclient >= 1.3.0
163 Requires: python2-eventlet
164 Requires: python2-futurist >= 1.2.0
165 Requires: python2-glanceclient >= 2.8.0
166 Requires: python-ironic-inspector-client >= 1.5.0
167 Requires: python-ironic-lib >= 2.5.0
168 Requires: python2-jinja2
169 Requires: python2-jsonpatch
170 Requires: python2-jsonschema
171 Requires: python2-keystoneauth1 >= 3.3.0
172 Requires: python2-keystonemiddleware >= 4.17.0
173 Requires: python2-neutronclient >= 6.3.0
174 Requires: python2-oslo-concurrency >= 3.25.0
175 Requires: python2-oslo-config >= 2:5.1.0
176 Requires: python2-oslo-context >= 2.19.2
177 Requires: python2-oslo-db >= 4.27.0
178 Requires: python2-oslo-i18n >= 3.15.3
179 Requires: python2-oslo-log >= 3.36.0
180 Requires: python2-oslo-messaging >= 5.29.0
181 Requires: python2-oslo-middleware >= 3.31.0
182 Requires: python2-oslo-policy >= 1.30.0
183 Requires: python2-oslo-reports >= 1.18.0
184 Requires: python2-oslo-rootwrap >= 5.8.0
185 Requires: python2-oslo-serialization >= 2.18.0
186 Requires: python2-oslo-service >= 1.24.0
187 Requires: python2-oslo-utils >= 3.33.0
188 Requires: python2-oslo-versionedobjects >= 1.31.2
189 Requires: python2-osprofiler >= 1.4.0
190 Requires: python2-os-traits
191 Requires: python2-pbr
192 Requires: python2-pecan
193 Requires: python-proliantutils >= 2.4.0
194 Requires: python2-psutil
195 Requires: python2-requests
196 Requires: python-retrying
197 Requires: python2-rfc3986 >= 0.3.1
198 Requires: python2-scciclient >= 0.5.0
199 Requires: python2-six
200 Requires: python2-sqlalchemy
201 Requires: python2-stevedore >= 1.20.0
202 Requires: python2-sushy
203 Requires: python2-swiftclient >= 3.2.0
204 Requires: python2-tooz >= 1.58.0
205 Requires: python-UcsSdk >= 0.8.2.2
206 Requires: python-webob >= 1.7.1
207 Requires: python2-wsme
208 Requires: python2-pysnmp
209 Requires: python2-pytz
212 Requires(pre): shadow-utils
215 Components common to all OpenStack Ironic services
218 %files common -f ironic.lang
221 %{_bindir}/ironic-dbsync
222 %{_bindir}/ironic-rootwrap
223 %{python2_sitelib}/ironic
224 %{python2_sitelib}/ironic-*.egg-info
225 %exclude %{python2_sitelib}/ironic/tests
226 %{_sysconfdir}/sudoers.d/ironic
227 %config(noreplace) %{_sysconfdir}/logrotate.d/openstack-ironic
228 %config(noreplace) %attr(-,root,ironic) %{_sysconfdir}/ironic
229 %attr(-,ironic,ironic) %{_sharedstatedir}/ironic
230 %attr(0750,ironic,ironic) %{_localstatedir}/log/ironic
231 %attr(-, root, ironic) %{_datadir}/ironic/ironic-dist.conf
232 %exclude %{python2_sitelib}/ironic_tests.egg_info
235 getent group ironic >/dev/null || groupadd -r ironic
236 getent passwd ironic >/dev/null || \
237 useradd -r -g ironic -d %{_sharedstatedir}/ironic -s /sbin/nologin \
238 -c "OpenStack Ironic Daemons" ironic
242 Summary: The Ironic API
244 Requires: %{name}-common = %{epoch}:%{version}-%{release}
249 Ironic API for management and provisioning of physical machines
253 %{_bindir}/ironic-api
254 %{_bindir}/ironic-api-wsgi
255 %{_unitdir}/openstack-ironic-api.service
258 %systemd_post openstack-ironic-api.service
261 %systemd_preun openstack-ironic-api.service
264 %systemd_postun_with_restart openstack-ironic-api.service
267 Summary: The Ironic Conductor
269 Requires: %{name}-common = %{epoch}:%{version}-%{release}
273 %description conductor
274 Ironic Conductor for management and provisioning of physical machines
277 %{_bindir}/ironic-conductor
278 %{_unitdir}/openstack-ironic-conductor.service
281 %systemd_post openstack-ironic-conductor.service
284 %systemd_preun openstack-ironic-conductor.service
287 %systemd_postun_with_restart openstack-ironic-conductor.service
289 %package -n python-ironic-tests
290 Summary: Ironic unit tests
291 Requires: %{name}-common = %{epoch}:%{version}-%{release}
292 Requires: python2-mock
293 Requires: python2-oslotest
294 Requires: /usr/bin/ostestr
295 Requires: python2-testresources
296 Requires: python2-testscenarios
297 Requires: python2-testtools
300 %description -n python-ironic-tests
301 This package contains the Ironic test files.
303 %files -n python-ironic-tests
304 %{python2_sitelib}/ironic/tests
307 #* Mon Jun 18 2018 RDO <dev@lists.rdoproject.org> 1:10.1.3-1
310 #* Mon Apr 09 2018 RDO <dev@lists.rdoproject.org> 1:10.1.2-1
313 #* Thu Feb 22 2018 RDO <dev@lists.rdoproject.org> 1:10.1.1-1
316 #* Thu Feb 15 2018 RDO <dev@lists.rdoproject.org> 1:10.1.0-1