File mash.spec of Package mash
#
# spec file for package mash
#
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: mash
Version: 11.4.2
Release: 0
Url: https://github.com/SUSE-Enceladus/mash
Summary: Public Cloud Release Tool
License: GPL-3.0+
Group: System/Management
Source: mash-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: python-rpm-macros
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: python3-adal
BuildRequires: python3-azure-identity
BuildRequires: python3-azure-mgmt-compute >= 17.0.0
BuildRequires: python3-azure-mgmt-resource
BuildRequires: python3-azure-mgmt-storage
BuildRequires: python3-azure-storage-blob >= 12.0.0
BuildRequires: python3-boto3
BuildRequires: python3-cryptography >= 2.2.0
BuildRequires: python3-PyYAML
BuildRequires: python3-PyJWT
BuildRequires: python3-amqpstorm >= 2.4.0
BuildRequires: python3-APScheduler >= 3.3.1
BuildRequires: python3-python-dateutil >= 2.6.0
BuildRequires: python3-ec2imgutils >= 9.0.1
BuildRequires: python3-img-proof >= 7.0.0
BuildRequires: python3-img-proof-tests >= 7.0.0
BuildRequires: python3-lxml
BuildRequires: python3-Flask
BuildRequires: python3-flask-restx
BuildRequires: python3-Flask-SQLAlchemy
BuildRequires: python3-Flask-Migrate
BuildRequires: python3-flask-jwt-extended < 4.0.0
BuildRequires: python3-requests
BuildRequires: python3-obs-img-utils >= 0.3.0
BuildRequires: python3-oci-sdk
BuildRequires: python3-google-auth
BuildRequires: python3-google-cloud-storage
BuildRequires: python3-google-api-python-client
BuildRequires: python3-aliyun-img-utils >= 1.4.0
BuildRequires: python3-Werkzeug
Requires: rabbitmq-server
Requires: python3-adal
Requires: python3-azure-identity
Requires: python3-azure-mgmt-compute >= 17.0.0
Requires: python3-azure-mgmt-resource
Requires: python3-azure-mgmt-storage
Requires: python3-azure-storage-blob >= 12.0.0
Requires: python3-boto3
Requires: python3-cryptography >= 2.2.0
Requires: python3-PyYAML
Requires: python3-PyJWT
Requires: python3-amqpstorm >= 2.4.0
Requires: python3-APScheduler >= 3.3.1
Requires: python3-python-dateutil >= 2.6.0
Requires: python3-ec2imgutils >= 9.0.1
Requires: python3-img-proof >= 7.0.0
Requires: python3-img-proof-tests >= 7.0.0
Requires: python3-lxml
Requires: python3-Flask
Requires: python3-flask-restx
Requires: python3-Flask-SQLAlchemy
Requires: python3-Flask-Migrate
Requires: python3-flask-jwt-extended < 4.0.0
Requires: python3-requests
Requires: python3-obs-img-utils >= 0.3.0
Requires: python3-oci-sdk
Requires: python3-google-auth
Requires: python3-google-cloud-storage
Requires: python3-google-api-python-client
Requires: python3-aliyun-img-utils >= 1.4.0
Requires: python3-Werkzeug
Requires: apache2
Requires: apache2-mod_wsgi-python3
Requires(pre): pwdutils
BuildArch: noarch
%description
Public Cloud Release Tool for release automation from image
build in obs to image available for customers in the public
cloud
%prep
%setup -q -n mash-%{version}
%build
python3 setup.py build
%install
python3 setup.py install --prefix=%{_prefix} --root=%{buildroot}
mkdir -p %{buildroot}%{_localstatedir}/log/%{name}
install -D -m 644 config/mash_config.yaml \
%{buildroot}%{_sysconfdir}/%{name}/mash_config.yaml
install -D -m 644 mash/services/api/wsgi.py \
%{buildroot}%{_localstatedir}/lib/%{name}/wsgi.py
install -D -m 644 config/mash.conf \
%{buildroot}%{_sysconfdir}/apache2/vhosts.d/mash.conf
install -D -m 644 mash/services/credentials/wsgi.py \
%{buildroot}%{_localstatedir}/lib/%{name}/credentials/wsgi.py
install -D -m 644 config/credentials.conf \
%{buildroot}%{_sysconfdir}/apache2/vhosts.d/credentials.conf
install -D -m 644 mash/services/database/wsgi.py \
%{buildroot}%{_localstatedir}/lib/%{name}/database/wsgi.py
install -D -m 644 config/database.conf \
%{buildroot}%{_sysconfdir}/apache2/vhosts.d/database.conf
install -d -m 755 %{buildroot}%{_localstatedir}/lib/%{name}/database/migrations
cp -r mash/services/database/migrations/* %{buildroot}%{_localstatedir}/lib/%{name}/database/migrations/
install -D -m 644 config/mash_obs.service \
%{buildroot}%{_unitdir}/mash_obs.service
install -D -m 644 config/mash_upload.service \
%{buildroot}%{_unitdir}/mash_upload.service
install -D -m 644 config/mash_create.service \
%{buildroot}%{_unitdir}/mash_create.service
install -D -m 644 config/mash_logger.service \
%{buildroot}%{_unitdir}/mash_logger.service
install -D -m 644 config/mash_job_creator.service \
%{buildroot}%{_unitdir}/mash_job_creator.service
install -D -m 644 config/mash_test.service \
%{buildroot}%{_unitdir}/mash_test.service
install -D -m 644 config/mash_raw_image_upload.service \
%{buildroot}%{_unitdir}/mash_raw_image_upload.service
install -D -m 644 config/mash_replicate.service \
%{buildroot}%{_unitdir}/mash_replicate.service
install -D -m 644 config/mash_publish.service \
%{buildroot}%{_unitdir}/mash_publish.service
install -D -m 644 config/mash_deprecate.service \
%{buildroot}%{_unitdir}/mash_deprecate.service
install -D -m 644 config/mash_cleanup.service \
%{buildroot}%{_unitdir}/mash_cleanup.service
%pre
%{_bindir}/getent group mash > /dev/null || %{_sbindir}/groupadd mash
%{_bindir}/getent passwd mash > /dev/null || %{_sbindir}/useradd -r -g mash -s %{_bindir}/false -c "User for MASH" -d %{_localstatedir}/lib/mash mash
%check
export LANG=en_US.UTF-8
python3 -m pytest
%files
%defattr(-,root,root,-)
%{python3_sitelib}/*
%dir %attr(755, mash, mash)%{_localstatedir}/log/%{name}
%dir %attr(755, mash, mash)%{_localstatedir}/lib/%{name}
%dir %attr(755, mash, mash)%{_localstatedir}/lib/%{name}/credentials
%dir %attr(755, mash, mash)%{_localstatedir}/lib/%{name}/database
%dir %attr(755, mash, mash)%{_localstatedir}/lib/%{name}/database/migrations
%dir %attr(755, mash, mash)%{_localstatedir}/lib/%{name}/database/migrations/versions
%dir %attr(755, mash, mash)%{_sysconfdir}/%{name}
%attr(640, mash, mash)%{_localstatedir}/lib/%{name}/wsgi.py
%attr(640, mash, mash)%{_localstatedir}/lib/%{name}/credentials/wsgi.py
%attr(640, mash, mash)%{_localstatedir}/lib/%{name}/database/wsgi.py
%attr(640, mash, mash)%{_localstatedir}/lib/%{name}/database/migrations/versions/*
%attr(640, mash, mash)%{_localstatedir}/lib/%{name}/database/migrations/alembic.ini
%attr(640, mash, mash)%{_localstatedir}/lib/%{name}/database/migrations/env.py
%attr(640, mash, mash)%{_localstatedir}/lib/%{name}/database/migrations/README
%attr(640, mash, mash)%{_localstatedir}/lib/%{name}/database/migrations/script.py.mako
%dir %{_sysconfdir}/apache2
%dir %{_sysconfdir}/apache2/vhosts.d
%config(noreplace) %attr(640, mash, mash)%{_sysconfdir}/apache2/vhosts.d/mash.conf
%config(noreplace) %attr(640, mash, mash)%{_sysconfdir}/apache2/vhosts.d/credentials.conf
%config(noreplace) %attr(640, mash, mash)%{_sysconfdir}/apache2/vhosts.d/database.conf
%config(noreplace) %attr(640, mash, mash)%{_sysconfdir}/%{name}/mash_config.yaml
%{_bindir}/mash-obs-service
%{_unitdir}/mash_obs.service
%{_bindir}/mash-upload-service
%{_unitdir}/mash_upload.service
%{_bindir}/mash-create-service
%{_unitdir}/mash_create.service
%{_bindir}/mash-logger-service
%{_unitdir}/mash_logger.service
%{_bindir}/mash-job-creator-service
%{_unitdir}/mash_job_creator.service
%{_bindir}/mash-test-service
%{_unitdir}/mash_test.service
%{_bindir}/mash-raw-image-upload-service
%{_unitdir}/mash_raw_image_upload.service
%{_bindir}/mash-replicate-service
%{_unitdir}/mash_replicate.service
%{_bindir}/mash-publish-service
%{_unitdir}/mash_publish.service
%{_bindir}/mash-deprecate-service
%{_unitdir}/mash_deprecate.service
%{_bindir}/mash-cleanup-service
%{_unitdir}/mash_cleanup.service
%changelog