diff --git a/ironic-python-agent-7.0.1.tar.gz b/ironic-python-agent-7.0.1.tar.gz new file mode 100644 index 0000000..b00c7d2 Binary files /dev/null and b/ironic-python-agent-7.0.1.tar.gz differ diff --git a/openstack-ironic-python-agent.defaultconf b/ironic-python-agent-dist.conf similarity index 59% rename from openstack-ironic-python-agent.defaultconf rename to ironic-python-agent-dist.conf index 3f25ab0..c159e43 100644 --- a/openstack-ironic-python-agent.defaultconf +++ b/ironic-python-agent-dist.conf @@ -1,3 +1,3 @@ [DEFAULT] use_stderr = True -use_journal = True \ No newline at end of file +use_journal = True diff --git a/ironic-python-agent-stable-victoria.tar.gz b/ironic-python-agent-stable-victoria.tar.gz deleted file mode 100644 index 4d21934..0000000 Binary files a/ironic-python-agent-stable-victoria.tar.gz and /dev/null differ diff --git a/openstack-ironic-python-agent.service b/openstack-ironic-python-agent.service index 11e99be..78ff411 100644 --- a/openstack-ironic-python-agent.service +++ b/openstack-ironic-python-agent.service @@ -1,14 +1,12 @@ [Unit] -Description=OpenStack Ironic Python Agent +Description=Ironic Python Agent Wants=network-online.target After=network-online.target - [Service] -ExecStart=/usr/bin/ironic-python-agent --config-dir /etc/ironic-python-agent --config-dir /etc/ironic-python-agent.conf.d/ +ExecStart=/usr/bin/ironic-python-agent --config-dir /etc/ironic-python-agent Restart=always RestartSec=30s -StandardOutput=kmsg+console +StandardOutput=tty StandardError=inherit - [Install] -WantedBy=multi-user.target \ No newline at end of file +WantedBy=multi-user.target diff --git a/openstack-ironic-python-agent.spec b/openstack-ironic-python-agent.spec index 01b2f4d..0503b33 100644 --- a/openstack-ironic-python-agent.spec +++ b/openstack-ironic-python-agent.spec @@ -1,139 +1,162 @@ -%if 0%{?rhel} || 0%{?fedora} -%global rdo 1 -%endif -%if 0%{?rhel} == 7 -%global skip_python3 1 -%endif +%{?!_licensedir:%global license %%doc} +%{!?upstream_version: %global upstream_version %{version}} + %global with_doc 1 -Name: openstack-ironic-python-agent -Version: 6.4.4 -Release: 0.1.dev1%{?dist} -Summary: Ironic Python Agent Ramdisk -License: ASL 2.0 -URL: https://launchpad.net/ironic-python-agent -Source0: ironic-python-agent-stable-victoria.tar.gz -Source1: openstack-ironic-python-agent.defaultconf -Source20: openstack-ironic-python-agent.service -BuildRequires: openstack-macros -BuildRequires: python3-pint -BuildRequires: python3-werkzeug -BuildRequires: python3-eventlet -BuildRequires: python3-ironic-lib -BuildRequires: python3-mock -BuildRequires: python3-netifaces -BuildRequires: python3-oslo-concurrency -BuildRequires: python3-oslo-config -BuildRequires: python3-oslo-log -BuildRequires: python3-oslo-serialization -BuildRequires: python3-oslo-service -BuildRequires: python3-oslo-utils -BuildRequires: python3-oslotest +%global sname ironic-python-agent + +Name: openstack-ironic-python-agent +Summary: A python agent for provisioning and deprovisioning bare metal servers +Version: 7.0.1 +Release: 1 +License: ASL 2.0 +URL: https://github.com/openstack/ironic-python-agent + +Source0: https://tarballs.openstack.org/%{sname}/%{sname}-%{upstream_version}.tar.gz +Source1: openstack-ironic-python-agent.service +Source2: ironic-python-agent-dist.conf +# Required for tarball sources verification + +BuildArch: noarch + +# Required for tarball sources verification +BuildRequires: python3-setuptools BuildRequires: python3-pbr -BuildRequires: python3-psutil -BuildRequires: python3-pyudev -BuildRequires: python3-requests -BuildRequires: python3-rtslib -BuildRequires: python3-stestr -BuildRequires: python3-stevedore -Requires: python3-ironic-python-agent = %{version}-%{release} -BuildArch: noarch -%if 0%{?suse_version} -BuildRequires: systemd-rpm-macros -%{?systemd_requires} -%else +BuildRequires: python3-devel BuildRequires: systemd -Requires(post): systemd -Requires(postun): systemd -Requires(preun): systemd -%endif +# These packages are required for running unit tests +BuildRequires: python3-cryptography +BuildRequires: python3-eventlet +BuildRequires: python3-ironic-lib +BuildRequires: python3-iso8601 +BuildRequires: python3-mock +BuildRequires: python3-oslo-config +BuildRequires: python3-oslo-concurrency +BuildRequires: python3-oslo-log +BuildRequires: python3-oslo-serialization +BuildRequires: python3-oslo-service +BuildRequires: python3-oslo-utils +BuildRequires: python3-oslotest +BuildRequires: python3-pecan +BuildRequires: python3-psutil +BuildRequires: python3-requests +BuildRequires: python3-stevedore +BuildRequires: python3-werkzeug +BuildRequires: openstack-macros +BuildRequires: python3-stestr +BuildRequires: python3-netifaces +BuildRequires: python3-pint +BuildRequires: python3-pyudev +BuildRequires: python3-rtslib +BuildRequires: python3-tenacity + +Requires: python3-ironic-python-agent = %{version}-%{release} +%{?systemd_requires} %description -The ironic-python-agent works with the agent driver in Ironic to provision the node. -Starting with ironic-python-agent running on a ramdisk on the unprovisioned node, -Ironic makes API calls to ironic-python-agent to provision the machine. +An agent for controlling and deploying Ironic controlled bare metal nodes. + +The ironic-python-agent works with the agent driver in Ironic to provision the +node. Starting with ironic-python-agent running on a ramdisk on the +unprovisioned node, Ironic makes API calls to ironic-python-agent to provision +the machine. This allows for greater control and flexibility of the entire +deployment process. + +The ironic-python-agent may also be used with the original Ironic pxe drivers +as of the Kilo OpenStack release. %package -n python3-ironic-python-agent -Summary: Ironic Python Agent Ramdisk - Python module -Group: Development/Languages/Python -Requires: python3-pint -Requires: python3-werkzeug -Requires: python3-eventlet -Requires: python3-ironic-lib -Requires: python3-netifaces -Requires: python3-oslo-concurrency -Requires: python3-oslo-config -Requires: python3-oslo-log -Requires: python3-oslo-serialization -Requires: python3-oslo-service -Requires: python3-oslo-utils -Requires: python3-pbr -Requires: python3-psutil -Requires: python3-pyudev -Requires: python3-requests -Requires: python3-rtslib -Requires: python3-stevedore +Summary: Python library for the ironic python agent. +%{?python_provide:%python_provide python3-ironic-python-agent} + +Requires: python3-cryptography >= 2.3 +Requires: python3-eventlet >= 0.18.2 +Requires: python3-ironic-lib >= 4.5.0 +Requires: python3-netifaces >= 0.10.4 +Requires: python3-oslo-concurrency >= 3.26.0 +Requires: python3-oslo-config >= 2:5.2.0 +Requires: python3-oslo-log >= 3.36.0 +Requires: python3-oslo-serialization >= 2.18.0 +Requires: python3-oslo-service >= 1.24.0 +Requires: python3-oslo-utils >= 3.33.0 +Requires: python3-pbr >= 2.0.0 +Requires: python3-pint >= 0.5 +Requires: python3-psutil >= 3.2.2 +Requires: python3-pyudev >= 0.18 +Requires: python3-requests >= 2.14.2 +Requires: python3-rtslib >= 2.1.65 +Requires: python3-stevedore >= 1.20.0 +Requires: python3-systemd +Requires: python3-werkzeug >= 1.0.1 +Requires: python3-tenacity >= 6.2.0 + +Requires: network-scripts %description -n python3-ironic-python-agent -The ironic-python-agent works with the agent driver in Ironic to provision the node. -Starting with ironic-python-agent running on a ramdisk on the unprovisioned node, -Ironic makes API calls to ironic-python-agent to provision the machine. - -This package contains the Python module. +Python library for ironic python agent. %if 0%{?with_doc} -%package doc -Summary: Ironic Python Agent Ramdisk - Documentation -Group: Documentation/HTML -BuildRequires: python3-sphinx -BuildRequires: python3-openstackdocstheme -BuildRequires: python3-sphinxcontrib-apidoc -BuildRequires: python3-sphinxcontrib-httpdomain -BuildRequires: python3-sphinxcontrib-pecanwsme +%package -n python-ironic-python-agent-doc +Summary: Documentation for ironic python agent. +BuildRequires: python3-sphinx +BuildRequires: python3-sphinxcontrib-apidoc +BuildRequires: python3-sphinxcontrib-httpdomain +BuildRequires: python3-sphinxcontrib-pecanwsme +BuildRequires: python3-openstackdocstheme -%description doc -The ironic-python-agent works with the agent driver in Ironic to provision the node. -Starting with ironic-python-agent running on a ramdisk on the unprovisioned node, -Ironic makes API calls to ironic-python-agent to provision the machine. - -This package contains the documentation. +%description -n python-ironic-python-agent-doc +Documentation for ironic python agent. %endif %prep -%autosetup -p1 -n ironic-python-agent-6.4.4.dev1 +%autosetup -v -p1 -n ironic-python-agent-%{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} -# config file generation -mkdir -p etc/ironic_python_agent -PYTHONPATH=. oslo-config-generator --config-file=tools/config/ipa-config-generator.conf - -# build documentation -%if 0%{?with_doc} -PBR_VERSION=6.4.4.dev1 sphinx-build -b html doc/source doc/build/html -rm -rf doc/build/html/.{doctrees,buildinfo} -%endif - %install %{py3_install} -# Setup directories -install -d -m 750 %{buildroot}%{_localstatedir}/{lib,log,cache}/ironic-python-agent -install -d -m 755 %{buildroot}%{_sysconfdir}/ironic-python-agent -install -d -m 755 %{buildroot}%{_sysconfdir}/ironic-python-agent/ironic-python-agent.conf.d +%if 0%{?with_doc} +export PBR_VERSION=%{version} +export PYTHONPATH=. +sphinx-build -b html -d doc/build/doctrees doc/source doc/build/html +# Remove build docs leftovers +rm -rf doc/build/html/.{doctrees,buildinfo} +%endif -# install config files -install -p -D -m 644 etc/ironic_python_agent/ironic_python_agent.conf.sample %{buildroot}%{_sysconfdir}/ironic-python-agent/ironic-python-agent.conf -install -p -D -m 640 %{SOURCE1} %{buildroot}%{_sysconfdir}/ironic-python-agent/ironic-python-agent.conf.d/010-ironic-python-agent.conf +# install systemd scripts +mkdir -p %{buildroot}%{_unitdir} +install -p -D -m 644 %{SOURCE1} %{buildroot}%{_unitdir} -# install systemd service files -install -p -D -m 644 %{SOURCE20} %{buildroot}%{_unitdir}/openstack-ironic-python-agent.service +# Install distribution config +install -p -D -m 640 %{SOURCE2} %{buildroot}/%{_sysconfdir}/ironic-python-agent/ironic-python-agent-dist.conf -# install symlinks on SUSE -%if 0%{?suse_version} -mkdir -p %{buildroot}%{_sbindir} -ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rc%{name} +%check + +export PYTHON=%{__python3} +stestr --test-path ironic_python_agent/tests/unit run + +%files +%doc README.rst +%license LICENSE +%config(noreplace) %attr(-,root,root) %{_sysconfdir}/ironic-python-agent +%{_bindir}/ironic-python-agent +%{_bindir}/ironic-collect-introspection-data +%{_unitdir}/openstack-ironic-python-agent.service + +%files -n python3-ironic-python-agent +%license LICENSE +%{python3_sitelib}/ironic_python_agent +%{python3_sitelib}/ironic_python_agent*.egg-info + +%if 0%{?with_doc} +%files -n python-ironic-python-agent-doc +%doc doc/build/html +%license LICENSE %endif %post @@ -145,33 +168,10 @@ ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rc%{name} %postun %systemd_postun_with_restart openstack-ironic-python-agent.service -%check -stestr --test-path ironic_python_agent/tests/unit run || : - -%files -%license LICENSE -%dir %attr(0750, root, root) %{_sysconfdir}/ironic-python-agent -%dir %attr(0750, root, root) %{_sysconfdir}/ironic-python-agent/ironic-python-agent.conf.d -%config(noreplace) %attr(0640, root, root) %{_sysconfdir}/ironic-python-agent/ironic-python-agent.conf -%config(noreplace) %attr(0640, root, root) %{_sysconfdir}/ironic-python-agent/ironic-python-agent.conf.d/010-ironic-python-agent.conf -%{_bindir}/ironic-python-agent -%{_bindir}/ironic-collect-introspection-data -%{_unitdir}/openstack-ironic-python-agent.service -%if 0%{?suse_version} -%{_sbindir}/rc%{name} -%endif - -%files -n python3-ironic-python-agent -%license LICENSE -%{python3_sitelib}/ironic_python_agent -%{python3_sitelib}/ironic_python_agent-*.egg-info - -%if 0%{?with_doc} -%files doc -%license LICENSE -%doc doc/build/html -%endif - %changelog +* Mon Jul 26 2021 liksh 7.0.1-1 +- Update to 7.0.1 + * Mon Feb 08 2021 zhaorenhai - Package Spec generated from rpm-packaging +