summaryrefslogtreecommitdiff
path: root/resalloc.spec
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-07-09 07:10:53 +0000
committerCoprDistGit <infra@openeuler.org>2023-07-09 07:10:53 +0000
commit7436a908e240b9edcd12c21e90620abdb09f9511 (patch)
treeb59feb31b599077d501bc52e2d7c543c8a248422 /resalloc.spec
parent39352f18ea3d446503b2b77e21f3457f5420cf9d (diff)
automatic import of resallocopeneuler23.03
Diffstat (limited to 'resalloc.spec')
-rw-r--r--resalloc.spec212
1 files changed, 212 insertions, 0 deletions
diff --git a/resalloc.spec b/resalloc.spec
new file mode 100644
index 0000000..936171e
--- /dev/null
+++ b/resalloc.spec
@@ -0,0 +1,212 @@
+%global srcname resalloc
+
+%global sysuser resalloc
+%global sysgroup %sysuser
+%global _logdir %_var/log/%{name}server
+%global _homedir %_sharedstatedir/%{name}server
+
+%global sum Resource allocator for expensive resources
+%global desc \
+The resalloc project aims to help with taking care of dynamically \
+allocated resources, for example ephemeral virtual machines used for \
+the purposes of CI/CD tasks.
+
+
+Name: %srcname
+Summary: %sum - client tooling
+Version: 4.9
+Release: 1
+License: GPL-2.0-or-later
+URL: https://github.com/praiskup/resalloc
+BuildArch: noarch
+
+BuildRequires: make
+BuildRequires: postgresql-server
+
+
+BuildRequires: python3-alembic
+BuildRequires: python3-argparse-manpage
+BuildRequires: python3-devel
+BuildRequires: python3-psycopg2
+BuildRequires: python3-pytest
+BuildRequires: python3-pytest-cov
+BuildRequires: python3-setuptools
+BuildRequires: python3-six
+BuildRequires: python3-sqlalchemy
+BuildRequires: python3-pyyaml
+
+Requires: python3-%srcname = %version-%release
+
+Source0: https://github.com/praiskup/%name/releases/download/v%version/%name-%version.tar.gz
+Source1: resalloc.service
+Source2: logrotate
+Source3: merge-hook-logs
+Source4: cron.hourly
+
+%description
+%desc
+
+The %name package provides the client-side tooling.
+
+
+%package server
+Summary: %sum - server part
+
+Requires: crontabs
+Requires: logrotate
+Requires: python3-%srcname = %version-%release
+Requires: python3-alembic
+Requires: python3-six
+Requires: python3-sqlalchemy
+Requires: python3-yaml
+
+Requires(pre): /usr/sbin/useradd
+%description server
+%desc
+
+The %name-server package provides the resalloc server, and
+some tooling for resalloc administrators.
+
+%package webui
+Summary: %sum - webui part
+
+Requires: python3-%srcname = %version-%release
+Requires: %name-server
+Requires: python3-flask
+Recommends: %name-selinux
+
+%description webui
+%desc
+
+The %name-webui package provides the resalloc webui,
+it shows page with information about resalloc resources.
+
+%package -n python3-%srcname
+Summary: %sum - Python 3 client library
+%{?python_provide:%python_provide python3-%srcname}
+%description -n python3-%srcname
+%desc
+
+The python3-%name package provides Python 3 client library for talking
+to the resalloc server.
+
+
+%package selinux
+Summary: SELinux module for %{name}
+Requires: %name-webui = %version-%release
+# Requires(post): policycoreutils-python
+BuildRequires: selinux-policy-devel
+%{?selinux_requires}
+
+%description selinux
+%desc
+
+%post selinux
+semanage fcontext -a -t httpd_sys_script_exec_t \
+ %_var/www/cgi-%{name} 2>/dev/null || :
+restorecon -R %_var/www/cgi-%{name} || :
+
+
+%prep
+%autosetup -p1 -n %name-%version
+
+
+%build
+%py3_build
+
+
+%install
+%py3_install
+install -d -m 755 %buildroot%_datadir/%{name}webui
+cp -r %{name}webui/templates %buildroot%_datadir/%{name}webui/
+cp -r %{name}webui/static %buildroot%_datadir/%{name}webui/
+
+install -d -m 755 %buildroot%_var/www/
+install -p -m 755 %{name}webui/cgi-resalloc %buildroot%_var/www/cgi-%{name}
+
+mkdir -p %buildroot%_unitdir
+mkdir -p %buildroot%_logdir
+install -p -m 644 %SOURCE1 %buildroot%_unitdir
+install -d -m 700 %buildroot%_homedir
+install -d -m 700 %buildroot%_sysconfdir/logrotate.d
+install -p -m 644 %SOURCE2 %buildroot%_sysconfdir/logrotate.d/resalloc-server
+install -p -m 644 man/resalloc-server.1 %buildroot%_mandir/man1
+install -d -m 755 %buildroot/%_libexecdir
+install -p -m 755 %SOURCE3 %buildroot/%_libexecdir/%name-merge-hook-logs
+install -d %buildroot%_sysconfdir/cron.hourly
+install -p -m 755 %SOURCE4 %buildroot%_sysconfdir/cron.hourly/resalloc
+
+# for now EUR call mock by root user, just skip check
+# need re-enable check when builder run as non-root user
+#%check
+#make check TEST_PYTHONS="python3"
+
+
+# Simplify "alembic upgrade head" actions.
+ln -s "%{python3_sitelib}/%{name}server" %buildroot%_homedir/project
+
+
+%pre server
+user=%sysuser
+group=%sysgroup
+getent group "$user" >/dev/null || groupadd -r "$group"
+getent passwd "$user" >/dev/null || \
+useradd -r -g "$group" -G "$group" -s /bin/bash \
+ -c "resalloc server's user" "$user" \
+ -d "%_homedir"
+
+
+%post server
+%systemd_post resalloc.service
+
+%postun server
+%systemd_postun_with_restart resalloc.service
+
+
+%global doc_files NEWS README
+
+%files
+%doc %doc_files
+%license COPYING
+%{_bindir}/%{name}
+%_mandir/man1/%{name}.1*
+
+
+%files -n python3-%srcname
+%doc %doc_files
+%license COPYING
+%{python3_sitelib}/%{name}
+%{python3_sitelib}/%{name}-*.egg-info
+
+
+%files server
+%doc %doc_files
+%license COPYING
+%{python3_sitelib}/%{name}server
+%{_bindir}/%{name}-server
+%{_bindir}/%{name}-maint
+%{_bindir}/%{name}-check-vm-ip
+%attr(0750, %sysuser, %sysgroup) %dir %{_sysconfdir}/%{name}server
+%config(noreplace) %{_sysconfdir}/%{name}server/*
+%_unitdir/resalloc.service
+%attr(0700, %sysuser, %sysgroup) %dir %_logdir
+%_mandir/man1/%{name}-maint.1*
+%_mandir/man1/%{name}-server.1*
+%attr(0700, %sysuser, %sysgroup) %_homedir
+%config %_sysconfdir/logrotate.d/resalloc-server
+%_libexecdir/resalloc-merge-hook-logs
+%config %attr(0755, root, root) %{_sysconfdir}/cron.hourly/resalloc
+
+%files webui
+%doc %doc_files
+%license COPYING
+%{python3_sitelib}/%{name}webui/
+%_datadir/%{name}webui/
+%_var/www/cgi-%{name}
+
+%files selinux
+
+
+%changelog
+* Tue Mar 21 2023 lichaoran <pkwarcraft@hotmail.comm> - 4.91
+- init package