diff --git a/openstack/swift/openstack-swift-account-auditor.service b/openstack/swift/openstack-swift-account-auditor.service new file mode 100644 index 000000000..238ee478c --- /dev/null +++ b/openstack/swift/openstack-swift-account-auditor.service @@ -0,0 +1,14 @@ +[Unit] +Description=OpenStack Swift Account Auditor +After=syslog.target network.target + +[Service] +Type=simple +User=swift +Group=swift +WorkingDirectory=/var/lib/swift +PrivateTmp=yes +ExecStart=/usr/bin/swift-account-auditor /etc/swift/account-server.conf + +[Install] +WantedBy=multi-user.target diff --git a/openstack/swift/openstack-swift-account-reaper.service b/openstack/swift/openstack-swift-account-reaper.service new file mode 100644 index 000000000..3fd7a96e9 --- /dev/null +++ b/openstack/swift/openstack-swift-account-reaper.service @@ -0,0 +1,14 @@ +[Unit] +Description=OpenStack Swift Account Reaper +After=syslog.target network.target + +[Service] +Type=simple +User=swift +Group=swift +WorkingDirectory=/var/lib/swift +PrivateTmp=yes +ExecStart=/usr/bin/swift-account-reaper /etc/swift/account-server.conf + +[Install] +WantedBy=multi-user.target diff --git a/openstack/swift/openstack-swift-account-replicator.service b/openstack/swift/openstack-swift-account-replicator.service new file mode 100644 index 000000000..a68f88e79 --- /dev/null +++ b/openstack/swift/openstack-swift-account-replicator.service @@ -0,0 +1,14 @@ +[Unit] +Description=OpenStack Swift Account Replicator +After=syslog.target network.target + +[Service] +Type=simple +User=swift +Group=swift +WorkingDirectory=/var/lib/swift +PrivateTmp=yes +ExecStart=/usr/bin/swift-account-replicator /etc/swift/account-server.conf + +[Install] +WantedBy=multi-user.target diff --git a/openstack/swift/openstack-swift-account.service b/openstack/swift/openstack-swift-account.service new file mode 100644 index 000000000..9cd0a76c3 --- /dev/null +++ b/openstack/swift/openstack-swift-account.service @@ -0,0 +1,14 @@ +[Unit] +Description=OpenStack Swift Account Server +After=syslog.target network.target + +[Service] +Type=simple +User=swift +Group=swift +WorkingDirectory=/var/lib/swift +PrivateTmp=yes +ExecStart=/usr/bin/swift-account-server /etc/swift/account-server.conf + +[Install] +WantedBy=multi-user.target diff --git a/openstack/swift/openstack-swift-container-auditor.service b/openstack/swift/openstack-swift-container-auditor.service new file mode 100644 index 000000000..a54ba5cb4 --- /dev/null +++ b/openstack/swift/openstack-swift-container-auditor.service @@ -0,0 +1,14 @@ +[Unit] +Description=OpenStack Swift Container Auditor +After=syslog.target network.target + +[Service] +Type=simple +User=swift +Group=swift +WorkingDirectory=/var/lib/swift +PrivateTmp=yes +ExecStart=/usr/bin/swift-container-auditor /etc/swift/container-server.conf + +[Install] +WantedBy=multi-user.target diff --git a/openstack/swift/openstack-swift-container-replicator.service b/openstack/swift/openstack-swift-container-replicator.service new file mode 100644 index 000000000..c6a0a37a1 --- /dev/null +++ b/openstack/swift/openstack-swift-container-replicator.service @@ -0,0 +1,14 @@ +[Unit] +Description=OpenStack Swift Container Replicator +After=syslog.target network.target + +[Service] +Type=simple +User=swift +Group=swift +WorkingDirectory=/var/lib/swift +PrivateTmp=yes +ExecStart=/usr/bin/swift-container-replicator /etc/swift/container-server.conf + +[Install] +WantedBy=multi-user.target diff --git a/openstack/swift/openstack-swift-container-sync.service b/openstack/swift/openstack-swift-container-sync.service new file mode 100644 index 000000000..c95cef6ad --- /dev/null +++ b/openstack/swift/openstack-swift-container-sync.service @@ -0,0 +1,14 @@ +[Unit] +Description=OpenStack Swift Container Sync +After=syslog.target network.target + +[Service] +Type=simple +User=swift +Group=swift +WorkingDirectory=/var/lib/swift +PrivateTmp=yes +ExecStart=/usr/bin/swift-container-sync /etc/swift/container-server.conf + +[Install] +WantedBy=multi-user.target diff --git a/openstack/swift/openstack-swift-container-updater.service b/openstack/swift/openstack-swift-container-updater.service new file mode 100644 index 000000000..75cbf5fe6 --- /dev/null +++ b/openstack/swift/openstack-swift-container-updater.service @@ -0,0 +1,14 @@ +[Unit] +Description=OpenStack Swift Container Updater +After=syslog.target network.target + +[Service] +Type=simple +User=swift +Group=swift +WorkingDirectory=/var/lib/swift +PrivateTmp=yes +ExecStart=/usr/bin/swift-container-updater /etc/swift/container-server.conf + +[Install] +WantedBy=multi-user.target diff --git a/openstack/swift/openstack-swift-container.service b/openstack/swift/openstack-swift-container.service new file mode 100644 index 000000000..3b34e44a9 --- /dev/null +++ b/openstack/swift/openstack-swift-container.service @@ -0,0 +1,14 @@ +[Unit] +Description=OpenStack Swift Container Service +After=syslog.target network.target + +[Service] +Type=simple +User=swift +Group=swift +WorkingDirectory=/var/lib/swift +PrivateTmp=yes +ExecStart=/usr/bin/swift-container-server /etc/swift/container-server.conf + +[Install] +WantedBy=multi-user.target diff --git a/openstack/swift/openstack-swift-object-auditor.service b/openstack/swift/openstack-swift-object-auditor.service new file mode 100644 index 000000000..ee23f53f3 --- /dev/null +++ b/openstack/swift/openstack-swift-object-auditor.service @@ -0,0 +1,14 @@ +[Unit] +Description=OpenStack Swift Object Auditor +After=syslog.target network.target + +[Service] +Type=simple +User=swift +Group=swift +WorkingDirectory=/var/lib/swift +PrivateTmp=yes +ExecStart=/usr/bin/swift-object-auditor /etc/swift/object-server.conf + +[Install] +WantedBy=multi-user.target diff --git a/openstack/swift/openstack-swift-object-expirer.service b/openstack/swift/openstack-swift-object-expirer.service new file mode 100644 index 000000000..02ce9c334 --- /dev/null +++ b/openstack/swift/openstack-swift-object-expirer.service @@ -0,0 +1,14 @@ +[Unit] +Description=OpenStack Swift Object Expirer +After=syslog.target network.target + +[Service] +Type=simple +User=swift +Group=swift +WorkingDirectory=/var/lib/swift +PrivateTmp=yes +ExecStart=/usr/bin/swift-object-expirer /etc/swift/object-expirer.conf + +[Install] +WantedBy=multi-user.target diff --git a/openstack/swift/openstack-swift-object-reconstructor.service b/openstack/swift/openstack-swift-object-reconstructor.service new file mode 100644 index 000000000..b61ebc2c3 --- /dev/null +++ b/openstack/swift/openstack-swift-object-reconstructor.service @@ -0,0 +1,14 @@ +[Unit] +Description=OpenStack Swift Object Reconstructor +After=syslog.target network.target + +[Service] +Type=simple +User=swift +Group=swift +WorkingDirectory=/var/lib/swift +PrivateTmp=yes +ExecStart=/usr/bin/swift-object-reconstructor /etc/swift/object-server.conf + +[Install] +WantedBy=multi-user.target diff --git a/openstack/swift/openstack-swift-object-replicator.service b/openstack/swift/openstack-swift-object-replicator.service new file mode 100644 index 000000000..bb0451c75 --- /dev/null +++ b/openstack/swift/openstack-swift-object-replicator.service @@ -0,0 +1,14 @@ +[Unit] +Description=OpenStack Swift Object Replicator +After=syslog.target network.target + +[Service] +Type=simple +User=swift +Group=swift +WorkingDirectory=/var/lib/swift +PrivateTmp=yes +ExecStart=/usr/bin/swift-object-replicator /etc/swift/object-server.conf + +[Install] +WantedBy=multi-user.target diff --git a/openstack/swift/openstack-swift-object-updater.service b/openstack/swift/openstack-swift-object-updater.service new file mode 100644 index 000000000..bae965d4e --- /dev/null +++ b/openstack/swift/openstack-swift-object-updater.service @@ -0,0 +1,14 @@ +[Unit] +Description=OpenStack Swift Object Updater +After=syslog.target network.target + +[Service] +Type=simple +User=swift +Group=swift +WorkingDirectory=/var/lib/swift +PrivateTmp=yes +ExecStart=/usr/bin/swift-object-updater /etc/swift/object-server.conf + +[Install] +WantedBy=multi-user.target diff --git a/openstack/swift/openstack-swift-object.service b/openstack/swift/openstack-swift-object.service new file mode 100644 index 000000000..da8861aa3 --- /dev/null +++ b/openstack/swift/openstack-swift-object.service @@ -0,0 +1,14 @@ +[Unit] +Description=OpenStack Swift Object Server +After=syslog.target network.target + +[Service] +Type=simple +User=swift +Group=swift +WorkingDirectory=/var/lib/swift +PrivateTmp=yes +ExecStart=/usr/bin/swift-object-server /etc/swift/object-server.conf + +[Install] +WantedBy=multi-user.target diff --git a/openstack/swift/openstack-swift-proxy.service b/openstack/swift/openstack-swift-proxy.service new file mode 100644 index 000000000..b952fbdc0 --- /dev/null +++ b/openstack/swift/openstack-swift-proxy.service @@ -0,0 +1,14 @@ +[Unit] +Description=OpenStack Swift Proxy Server +After=syslog.target network.target + +[Service] +Type=simple +User=swift +Group=swift +WorkingDirectory=/var/lib/swift +PrivateTmp=yes +ExecStart=/usr/bin/swift-proxy-server /etc/swift/proxy-server.conf + +[Install] +WantedBy=multi-user.target diff --git a/openstack/swift/openstack-swift.logrotate b/openstack/swift/openstack-swift.logrotate new file mode 100644 index 000000000..2c847cff3 --- /dev/null +++ b/openstack/swift/openstack-swift.logrotate @@ -0,0 +1,13 @@ +/var/log/swift/*.log { + weekly + dateext + rotate 10 + size 1M + missingok + compress + notifempty + copytruncate + su swift swift + minsize 100k + sharedscripts +} diff --git a/openstack/swift/openstack-swift.tmpfiles b/openstack/swift/openstack-swift.tmpfiles new file mode 100644 index 000000000..e9e30d919 --- /dev/null +++ b/openstack/swift/openstack-swift.tmpfiles @@ -0,0 +1,5 @@ +d /run/swift 0700 swift swift - +d /run/swift/account-server 0700 swift swift - +d /run/swift/container-server 0700 swift swift - +d /run/swift/object-server 0700 swift swift - +d /run/swift/proxy-server 0700 swift swift - diff --git a/openstack/swift/swift.spec.j2 b/openstack/swift/swift.spec.j2 new file mode 100644 index 000000000..01fc6bf21 --- /dev/null +++ b/openstack/swift/swift.spec.j2 @@ -0,0 +1,417 @@ +{% set pypi_name = 'swift' %} +{% set source = fetch_source('https://tarballs.openstack.org/swift/swift-master.tar.gz') %} +{% set upstream_version = upstream_version() %} +{% set rpm_release = '1' %} +%define groupname {{ pypi_name }} +%define username {{ pypi_name }} +Name: {{ py2name() }} +Version: {{ py2rpmversion() }} +Release: {{ py2rpmrelease() }} +Summary: OpenStack Storage (Swift) +License: {{ license('Apache-2.0') }} +URL: http://launchpad.net/swift +Source0: {{ source|basename }} +Source1: %{name}-account.service +Source2: %{name}-account-auditor.service +Source3: %{name}-account-reaper.service +Source4: %{name}-account-replicator.service +Source5: %{name}-container.service +Source6: %{name}-container-auditor.service +Source7: %{name}-container-replicator.service +Source8: %{name}-container-updater.service +Source9: %{name}-container-sync.service +Source10: %{name}-object.service +Source11: %{name}-object-replicator.service +Source12: %{name}-object-expirer.service +Source13: %{name}-object-updater.service +Source14: %{name}-object-auditor.service +Source15: %{name}-object-reconstructor.service +Source16: %{name}-proxy.service +Source20: %{name}.logrotate +Source30: %{name}.tmpfiles +BuildRequires: crudini +BuildRequires: fdupes +BuildRequires: openstack-macros +BuildRequires: {{ py3('pbr') }} +BuildRequires: {{ py3('setuptools') }} +Requires: logrotate +Requires: python3-{{ pypi_name }} = %{version}-%{release} +Requires: rsync +BuildArch: noarch +%if 0%{?suse_version} +BuildRequires: systemd-rpm-macros +Requires(pre): pwdutils +%{?systemd_requires} +%else +BuildRequires: systemd +Requires(post): systemd +Requires(postun): systemd +Requires(pre): shadow-utils +Requires(preun): systemd +%endif + +%description +OpenStack Object Storage (swift) aggregates commodity servers to work +together in clusters for reliable, redundant, and large-scale storage +of static objects. Objects are written to multiple hardware devices in +the data center, with the OpenStack software responsible for ensuring +data replication and integrity across the cluster. Storage clusters can +scale horizontally by adding new nodes, which are automatically +configured. Should a node fail, OpenStack works to replicate its +content from other active nodes. Because OpenStack uses software logic +to ensure data replication and distribution across different devices, +inexpensive commodity hard drives and servers can be used in lieu of +more expensive equipment. + +%package -n python3-{{ pypi_name }} +Summary: OpenStack Storage (Swift) - Python module +Requires: {{ py3('PasteDeploy') }} +Requires: {{ py3('PyECLib') }} +Requires: {{ py3('cryptography') }} +Requires: {{ py3('dnspython') }} +Requires: {{ py3('eventlet') }} +Requires: {{ py3('greenlet') }} +Requires: {{ py3('netifaces') }} +Requires: {{ py3('pbr') }} +Requires: {{ py3('simplejson') }} +Requires: {{ py3('six') }} +Requires: {{ py3('python-swiftclient') }} +Requires: {{ py3('xattr') }} + +%description -n python3-swift +This package contains the core Python module of OpenStack Swift. + +%package account +Summary: OpenStack Storage (Swift) - Account Server +Group: Productivity/Clustering/Computing +Requires: %{name} = %{version}-%{release} + +%description account +OpenStack Object Storage (swift) aggregates commodity servers to work +together in clusters for reliable, redundant, and large-scale storage +of static objects. + +This package contains the openstack-swift account server. + +%package container +Summary: OpenStack Storage (Swift) - Container Server +Group: Productivity/Clustering/Computing +Requires: %{name} = %{version}-%{release} + +%description container +OpenStack Object Storage (swift) aggregates commodity servers to work +together in clusters for reliable, redundant, and large-scale storage +of static objects. + +This package contains the openstack-swift container server. + +%package object +Summary: OpenStack Storage (Swift) - Object Server +Group: Productivity/Clustering/Computing +Requires: %{name} = %{version}-%{release} + +%description object +OpenStack Object Storage (swift) aggregates commodity servers to work +together in clusters for reliable, redundant, and large-scale storage +of static objects. + +This package contains the openstack-swift object server. + +%package proxy +Summary: OpenStack Storage (Swift) - Proxy Server +Group: Productivity/Clustering/Computing +Requires: %{name} = %{version}-%{release} +Requires: memcached + +%description proxy +OpenStack Object Storage (swift) aggregates commodity servers to work +together in clusters for reliable, redundant, and large-scale storage +of static objects. + +This package contains the openstack-swift proxy server. + +%prep +%autosetup -p1 -n {{ pypi_name }}-{{ upstream_version }} +%py_req_cleanup + +%build +%{py3_build} + +%install +%{py3_install} + +### directories +install -d -m 750 %{buildroot}%{_localstatedir}/cache/{{ pypi_name }} +install -d -m 750 %{buildroot}%{_localstatedir}/lib/{{ pypi_name }} +install -d -m 750 %{buildroot}%{_localstatedir}/log/{{ pypi_name }} +install -D -m 644 %{SOURCE30} %{buildroot}/%_tmpfilesdir/%{name}.conf + +# systemd unit files +mkdir -p %{buildroot}%{_unitdir} +install -p -D -m 444 %{SOURCE1} %{buildroot}%{_unitdir}/%{name}-account.service +install -p -D -m 444 %{SOURCE2} %{buildroot}%{_unitdir}/%{name}-account-auditor.service +install -p -D -m 444 %{SOURCE3} %{buildroot}%{_unitdir}/%{name}-account-reaper.service +install -p -D -m 444 %{SOURCE4} %{buildroot}%{_unitdir}/%{name}-account-replicator.service +install -p -D -m 444 %{SOURCE5} %{buildroot}%{_unitdir}/%{name}-container.service +install -p -D -m 444 %{SOURCE6} %{buildroot}%{_unitdir}/%{name}-container-auditor.service +install -p -D -m 444 %{SOURCE7} %{buildroot}%{_unitdir}/%{name}-container-replicator.service +install -p -D -m 444 %{SOURCE8} %{buildroot}%{_unitdir}/%{name}-container-updater.service +install -p -D -m 444 %{SOURCE9} %{buildroot}%{_unitdir}/%{name}-container-sync.service +install -p -D -m 444 %{SOURCE10} %{buildroot}%{_unitdir}/%{name}-object.service +install -p -D -m 444 %{SOURCE11} %{buildroot}%{_unitdir}/%{name}-object-replicator.service +install -p -D -m 444 %{SOURCE12} %{buildroot}%{_unitdir}/%{name}-object-expirer.service +install -p -D -m 444 %{SOURCE13} %{buildroot}%{_unitdir}/%{name}-object-updater.service +install -p -D -m 444 %{SOURCE14} %{buildroot}%{_unitdir}/%{name}-object-auditor.service +install -p -D -m 444 %{SOURCE15} %{buildroot}%{_unitdir}/%{name}-object-reconstructor.service +install -p -D -m 444 %{SOURCE16} %{buildroot}%{_unitdir}/%{name}-proxy.service + +# install symlinks on SUSE +%if 0%{?suse_version} +mkdir -p %{buildroot}%{_sbindir} +for server in account account-auditor account-reaper account-replicator container container-auditor container-replicator container-updater container-sync object object-replicator object-expirer object-updater object-auditor object-reconstructor proxy; do + ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rc%{name}-$server +done +%endif + +# Install manpages +install -d %{buildroot}%{_mandir}/man{1,5}/ +install -m 0644 doc/manpages/*.1 %{buildroot}%{_mandir}/man1/ +install -m 0644 doc/manpages/*.5 %{buildroot}%{_mandir}/man5/ + +# Remove tests +rm -fr %{buildroot}/%{python3_sitelib}/test + +# Misc other +install -d -m 755 %{buildroot}%{_sysconfdir}/{{ pypi_name }} +for c in account-server container-server dispersion object-expirer object-server proxy-server swift; do + install -m 644 etc/$c.conf-sample %{buildroot}%{_sysconfdir}/swift/$c.conf +done +for c in account-server container-server object-expirer object-server proxy-server ; do + crudini --set %{buildroot}%{_sysconfdir}/swift/$c.conf DEFAULT user %{username} +done +crudini --set %{buildroot}%{_sysconfdir}/swift/dispersion.conf dispersion auth_user %{username} +# NOTE(saschpe): dispersion checks for localhost:8080/auth... by default... +crudini --set %{buildroot}%{_sysconfdir}/swift/proxy-server.conf DEFAULT bind_port 8080 + +install -p -D -m 644 %{SOURCE20} %{buildroot}%{_sysconfdir}/logrotate.d/%{name} + +%fdupes %{buildroot}%{python3_sitelib}/swift + +%pre +%openstack_pre_user_group_create %{username} %{groupname} + +%post +%tmpfiles_create %{_tmpfilesdir}/%{name}.conf + +%post account +%systemd_post %{name}-account.service +%systemd_post %{name}-account-auditor.service +%systemd_post %{name}-account-reaper.service +%systemd_post %{name}-account-replicator.service + +%preun account +%systemd_preun %{name}-account.service +%systemd_preun %{name}-account-auditor.service +%systemd_preun %{name}-account-reaper.service +%systemd_preun %{name}-account-replicator.service + + +%postun account +%systemd_postun_with_restart %{name}-account.service +%systemd_postun_with_restart %{name}-account-auditor.service +%systemd_postun_with_restart %{name}-account-reaper.service +%systemd_postun_with_restart %{name}-account-replicator.service + + +%post container +%systemd_post %{name}-container.service +%systemd_post %{name}-container-auditor.service +%systemd_post %{name}-container-reaper.service +%systemd_post %{name}-container-replicator.service +%systemd_post %{name}-container-sync.service + +%preun container +%systemd_preun %{name}-container.service +%systemd_preun %{name}-container-auditor.service +%systemd_preun %{name}-container-reaper.service +%systemd_preun %{name}-container-replicator.service +%systemd_preun %{name}-container-sync.service + +%postun container +%systemd_postun_with_restart %{name}-container.service +%systemd_postun_with_restart %{name}-container-auditor.service +%systemd_postun_with_restart %{name}-container-reaper.service +%systemd_postun_with_restart %{name}-container-replicator.service +%systemd_postun_with_restart %{name}-container-sync.service + +%post object +%systemd_post %{name}-object.service +%systemd_post %{name}-object-replicator.service +%systemd_post %{name}-object-expirer.service +%systemd_post %{name}-object-updater.service +%systemd_post %{name}-object-auditor.service +%systemd_post %{name}-object-reconstructor.service + +%preun object +%systemd_preun %{name}-object.service +%systemd_preun %{name}-object-replicator.service +%systemd_preun %{name}-object-expirer.service +%systemd_preun %{name}-object-updater.service +%systemd_preun %{name}-object-auditor.service +%systemd_preun %{name}-object-reconstructor.service + +%postun object +%systemd_postun_with_restart %{name}-object.service +%systemd_postun_with_restart %{name}-object-replicator.service +%systemd_postun_with_restart %{name}-object-expirer.service +%systemd_postun_with_restart %{name}-object-updater.service +%systemd_postun_with_restart %{name}-object-auditor.service +%systemd_postun_with_restart %{name}-object-reconstructor.service + +%post proxy +%systemd_post %{name}-proxy.service + +%preun proxy +%systemd_preun %{name}-proxy.service + +%postun proxy +%systemd_postun_with_restart %{name}-proxy.service + +%files +%license LICENSE +%doc README.rst +%_tmpfilesdir/%{name}.conf +%dir %attr(0750, %{username}, %{groupname}) %{_localstatedir}/log/{{ pypi_name }} +%dir %attr(0755, %{username}, %{groupname}) %{_sysconfdir}/{{ pypi_name }} +%dir %attr(0750, %{username}, %{groupname}) %{_localstatedir}/lib/{{ pypi_name }} +%dir %attr(0750, %{username}, %{groupname}) %{_localstatedir}/cache/{{ pypi_name }} +%{_bindir}/swift-account-audit +%{_bindir}/swift-dispersion-populate +%{_bindir}/swift-dispersion-report +%{_bindir}/swift-drive-audit +%{_bindir}/swift-form-signature +%{_bindir}/swift-get-nodes +%{_bindir}/swift-init +%{_bindir}/swift-config +%{_bindir}/swift-oldies +%{_bindir}/swift-orphans +%{_bindir}/swift-recon +%{_bindir}/swift-recon-cron +%{_bindir}/swift-ring-builder +%{_bindir}/swift-ring-builder-analyzer +%{_bindir}/swift-ring-composer +%{_bindir}/swift-manage-shard-ranges +%{_mandir}/man1/swift-account-audit.1* +%{_mandir}/man1/swift-config.1* +%{_mandir}/man1/swift-dispersion-populate.1* +%{_mandir}/man1/swift-dispersion-report.1* +%{_mandir}/man1/swift-drive-audit.1* +%{_mandir}/man1/swift-form-signature.1* +%{_mandir}/man1/swift-get-nodes.1* +%{_mandir}/man1/swift-oldies.1* +%{_mandir}/man1/swift-init.1* +%{_mandir}/man1/swift-orphans.1* +%{_mandir}/man1/swift-recon.1* +%{_mandir}/man1/swift-recon-cron.1* +%{_mandir}/man1/swift-ring-builder.1* +%{_mandir}/man1/swift-ring-builder-analyzer.1* +%{_mandir}/man1/swift-ring-composer.1* +%{_mandir}/man5/dispersion.conf.5* +%{_mandir}/man5/swift.conf.5* +%config(noreplace) %{_sysconfdir}/swift/swift.conf +%config(noreplace) %attr(0400, %{username}, %{groupname}) %{_sysconfdir}/swift/dispersion.conf +%config(noreplace) %{_sysconfdir}/logrotate.d/%{name} + +%files -n python3-{{ pypi_name }} +%license LICENSE +%{python3_sitelib}/swift +%{python3_sitelib}/swift-2.*.egg-info + +%files account +%license LICENSE +%{_unitdir}/%{name}-account*.service +%if 0%{?suse_version} +%{_sbindir}/rc%{name}-account* +%endif +%config(noreplace) %{_sysconfdir}/swift/account-server.conf +%{_bindir}/swift-account-auditor +%{_bindir}/swift-account-info +%{_bindir}/swift-account-reaper +%{_bindir}/swift-account-replicator +%{_bindir}/swift-account-server +%{_mandir}/man1/swift-account-auditor.1* +%{_mandir}/man1/swift-account-info.1* +%{_mandir}/man1/swift-account-reaper.1* +%{_mandir}/man1/swift-account-replicator.1* +%{_mandir}/man1/swift-account-server.1* +%{_mandir}/man5/account-server.conf.5* + +%files container +%license LICENSE +%{_unitdir}/%{name}-container*.service +%if 0%{?suse_version} +%{_sbindir}/rc%{name}-container* +%endif +%config(noreplace) %{_sysconfdir}/swift/container-server.conf +%{_bindir}/swift-container-auditor +%{_bindir}/swift-container-deleter +%{_bindir}/swift-container-reconciler +%{_bindir}/swift-container-info +%{_bindir}/swift-container-server +%{_bindir}/swift-container-replicator +%{_bindir}/swift-container-updater +%{_bindir}/swift-container-sync +%{_bindir}/swift-container-sharder +%{_bindir}/swift-reconciler-enqueue +%{_mandir}/man1/swift-container-auditor.1* +%{_mandir}/man1/swift-container-info.1* +%{_mandir}/man1/swift-container-server.1* +%{_mandir}/man1/swift-container-sync.1* +%{_mandir}/man1/swift-container-reconciler.1* +%{_mandir}/man1/swift-container-replicator.1* +%{_mandir}/man1/swift-container-updater.1* +%{_mandir}/man1/swift-reconciler-enqueue.1* +%{_mandir}/man5/container-server.conf.5* +%{_mandir}/man5/container-sync-realms.conf.5* +%{_mandir}/man5/container-reconciler.conf.5* + +%files object +%license LICENSE +%doc etc/rsyncd.conf-sample +%{_unitdir}/%{name}-object*.service +%if 0%{?suse_version} +%{_sbindir}/rc%{name}-object* +%endif +%config(noreplace) %{_sysconfdir}/swift/object-server.conf +%{_sysconfdir}/swift/object-expirer.conf +%{_bindir}/swift-object-auditor +%{_bindir}/swift-object-expirer +%{_bindir}/swift-object-info +%{_bindir}/swift-object-reconstructor +%{_bindir}/swift-object-replicator +%{_bindir}/swift-object-relinker +%{_bindir}/swift-object-server +%{_bindir}/swift-object-updater +%{_mandir}/man1/swift-object-auditor.1* +%{_mandir}/man1/swift-object-expirer.1* +%{_mandir}/man1/swift-object-info.1* +%{_mandir}/man1/swift-object-reconstructor.1* +%{_mandir}/man1/swift-object-replicator.1* +%{_mandir}/man1/swift-object-server.1* +%{_mandir}/man1/swift-object-updater.1* +%{_mandir}/man1/swift-object-relinker.1* +%{_mandir}/man5/object-expirer.conf.5* +%{_mandir}/man5/object-server.conf.5* + +%files proxy +%license LICENSE +%{_unitdir}/%{name}-proxy.service +%if 0%{?suse_version} +%{_sbindir}/rc%{name}-proxy +%endif +%config(noreplace) %{_sysconfdir}/swift/proxy-server.conf +%{_bindir}/swift-proxy-server +%{_mandir}/man1/swift-proxy-server.1* +%{_mandir}/man5/proxy-server.conf.5* + +%changelog