#
# Copyright [2011] [Red Hat, Inc.]
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
Name: aeolus-configserver
Version: 0.5.1
Release: 4%{?dist}
Summary: The Aeolus Config Server
Group: Applications/System
License: ASL 2.0
URL: http://aeolusproject.org
Source0: http://joev.fedorapeople.org/configserver/aeolus-configserver-%{version}.tgz
%global app_root %{_datadir}/%{name}
%{!?_unitdir: %define _unitdir /lib/systemd/system}
BuildRequires: rubygems
BuildRequires: ruby(release)
BuildRequires: ruby-devel
BuildRequires: ruby-devel
BuildRequires: rubygems
BuildRequires: help2man
%if 0%{?fedora} >= 16
# test target BuildRequires
# Only run the automated test on Fedora 16 or greater because
# not all the required packages are available otherwise.
BuildRequires: rubygem-test-spec rubygem-archive-tar-minitar
BuildRequires: rubygem-activesupport rubygem-nokogiri
BuildRequires: rubygem-oauth rubygem-rack
BuildRequires: rubygem-rack-test rubygem-rake
BuildRequires: rubygem-rspec rubygem-rspec-core
BuildRequires: rubygem-sinatra
%else
Requires: ruby-nokogiri
%endif
Requires: httpd
Requires: mod_ssl
Requires: puppet
Requires: rubygems
Requires: ruby(release)
Requires: rubygem(nokogiri)
Requires: rubygem(sinatra)
Requires: rubygem(thin)
Requires: rubygem(archive-tar-minitar)
Requires: rubygem(activesupport)
Requires: rubygem(oauth)
Requires(post): chkconfig
Requires(preun): chkconfig
Requires(preun): initscripts
%if 0%{?fedora} >= 17
Requires(post): systemd-units
Requires(preun): systemd-units
%endif
BuildArch: noarch
%description
The Aeolus Config Server, a service for storing and retrieving VM
configurations.
%prep
%setup -q
%build
%install
rm -rf %{buildroot}
##
# aeolus-configserver
##
mkdir -p %{buildroot}%{app_root}/configure
mkdir -p %{buildroot}%{_bindir}
mkdir -p %{buildroot}%{_initrddir}
mkdir -p %{buildroot}%{_sysconfdir}/sysconfig
mkdir -p %{buildroot}%{_sysconfdir}/logrotate.d
mkdir -p %{buildroot}%{_sysconfdir}/%{name}
mkdir -p %{buildroot}%{_localstatedir}/lib/%{name}/schema
mkdir -p %{buildroot}%{_localstatedir}/log/%{name}
mkdir -p %{buildroot}%{_localstatedir}/run/%{name}
mkdir -p %{buildroot}%{_mandir}/man8
# copy over all of the src directory...
install -d %{buildroot}/%{app_root}/lib/model
install -m 0644 \
src/config.ru \
src/common_config.rb \
src/configserver.rb %{buildroot}/%{app_root}
install -m 0644 \
src/lib/application_helper.rb \
src/lib/config_handler.rb \
src/lib/report_server.rb \
src/lib/model.rb %{buildroot}/%{app_root}/lib
install -m 0644 \
src/lib/model/base.rb \
src/lib/model/consumer.rb \
src/lib/model/deployable.rb \
src/lib/model/service.rb \
src/lib/model/instance.rb %{buildroot}/%{app_root}/lib/model
# copy over init scripts and configs
%if 0%{?rhel}
# install the sysv service script
mkdir -p %{buildroot}/%{_initrddir}
install -Dp -m755 conf/%{name}.sysv %{buildroot}/%{_initrddir}/%{name}
%else
# install the systemd unit file
mkdir -p %{buildroot}/%{_unitdir}/
install -m644 conf/%{name}.service %{buildroot}/%{_unitdir}/
echo %{buildroot}/%{_unitdir}/
%endif
install -m 0644 conf/%{name}.sysconf \
%{buildroot}%{_sysconfdir}/sysconfig/%{name}
install -m 0644 conf/%{name}.logrotate \
%{buildroot}%{_sysconfdir}/logrotate.d/%{name}
# copy relaxNG schema files
install -m 0644 \
schema/assembly.rng \
schema/deployable.rng \
schema/instance-config.rng \
schema/template.rng %{buildroot}%{_localstatedir}/lib/%{name}/schema/
# copy over all puppet scripts and bin files
install -d %{buildroot}%{app_root}/configure/puppet/modules/apache/manifests
install -m 0644 \
configure/puppet/modules/apache/manifests/init.pp \
%{buildroot}%{app_root}/configure/puppet/modules/apache/manifests
install -d %{buildroot}%{app_root}/configure/puppet/modules/apache/templates
install -m 0644 \
configure/puppet/modules/apache/templates/vhost443.erb \
configure/puppet/modules/apache/templates/vhost80.erb \
configure/puppet/modules/apache/templates/vhost.erb \
%{buildroot}%{app_root}/configure/puppet/modules/apache/templates
install -d \
%{buildroot}%{app_root}/configure/puppet/modules/configserver/manifests
install -m 0644 \
configure/puppet/modules/configserver/manifests/init.pp \
%{buildroot}%{app_root}/configure/puppet/modules/configserver/manifests
install configure/bin/config_httpd.sh \
%{buildroot}%{_bindir}/aeolus-configserver-setup
install conf/aeolus-configserver-thinwrapper \
%{buildroot}%{_bindir}/aeolus-configserver-thinwrapper
# copy the generated man page from the buildroot
install -m 0644 aeolus-configserver-setup.8 %{buildroot}%{_mandir}/man8
%clean
rm -rf %{buildroot}
%pre
# Ensure the aeolus user/group is created (same IDs as in aeolus-conductor)
getent group aeolus >/dev/null || \
groupadd -g 180 -r aeolus 2>/dev/null || :
getent passwd aeolus >/dev/null || \
useradd -u 180 -g aeolus -c "aeolus" \
-s /sbin/nologin -r -d /var/aeolus aeolus 2> /dev/null || :
%post
# Register the service
%if 0%{?rhel}
chkconfig --add %{name}
chkconfig %{name} on
chkconfig httpd on
%else
%if 0%{?fedora} <= 17
if [ $1 -eq 1]; then
systemctl enable %{name}.service > /dev/null 2>&1 || :
fi
%else
%systemd_post %{name}.service
%endif
%endif
%preun
# halt and unregister the service before package deletion
if [ $1 = 0 ]; then
%if 0%{?rhel}
service %{name} stop > /dev/null 2>&1
chkconfig --del %{name}
%else
%if 0%{?fedora} <= 17
/bin/systemctl stop %{name}.service > /dev/null 2>&1 || :
/bin/systemctl --no-reload disable %{name}.service > /dev/null 2>&1 || :
%else
%systemd_preun %{name}.service
%endif
%endif
fi
%files
%defattr(-,root,root,-)
%{app_root}
%{app_root}/config.ru
%{app_root}/common_config.rb
%{app_root}/configserver.rb
%{app_root}/configure
%{app_root}/configure/puppet
%{app_root}/configure/puppet/modules
%{app_root}/configure/puppet/modules/apache
%{app_root}/configure/puppet/modules/apache/manifests
%{app_root}/configure/puppet/modules/apache/manifests/init.pp
%{app_root}/configure/puppet/modules/apache/templates
%{app_root}/configure/puppet/modules/apache/templates/vhost443.erb
%{app_root}/configure/puppet/modules/apache/templates/vhost80.erb
%{app_root}/configure/puppet/modules/apache/templates/vhost.erb
%{app_root}/configure/puppet/modules/configserver
%{app_root}/configure/puppet/modules/configserver/manifests
%{app_root}/configure/puppet/modules/configserver/manifests/init.pp
%{app_root}/lib
%{app_root}/lib/application_helper.rb
%{app_root}/lib/config_handler.rb
%{app_root}/lib/model.rb
%{app_root}/lib/report_server.rb
%{app_root}/lib/model
%{app_root}/lib/model/base.rb
%{app_root}/lib/model/consumer.rb
%{app_root}/lib/model/deployable.rb
%{app_root}/lib/model/instance.rb
%{app_root}/lib/model/service.rb
%{_bindir}/aeolus-configserver-setup
%{_bindir}/aeolus-configserver-thinwrapper
%dir %{_sysconfdir}/%{name}
%if 0%{?rhel}
%{_initrddir}/%{name}
%else
%{_unitdir}/%{name}.service
%endif
%config(noreplace) %{_sysconfdir}/sysconfig/%{name}
%config(noreplace) %{_sysconfdir}/logrotate.d/%{name}
%attr(-, aeolus, aeolus) %{_localstatedir}/lib/%{name}
%ghost %attr(-, aeolus, aeolus) %{_localstatedir}/run/%{name}
%attr(-, aeolus, aeolus) %{_localstatedir}/log/%{name}
%{_mandir}/man8/aeolus-configserver-setup.8*
%doc COPYING
%changelog
* Wed Feb 28 2013 Joe VLcek <jvlcek@redhat.com> 0.5.1-4
- Spec file cleanup related to changes for:
- Rebuild for https://fedoraproject.org/wiki/Features/Ruby_2.0.0
* Wed Feb 27 2013 Joe VLcek <jvlcek@redhat.com> 0.5.1-3
- Rebuild for https://fedoraproject.org/wiki/Features/Ruby_2.0.0
* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.5.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
* Thu Sep 13 2012 Greg Blomquist <gblomqui@redhat.com> 0.5.0-0
- https://bugzilla.redhat.com/show_bug.cgi?id=856650
- https://bugzilla.redhat.com/show_bug.cgi?id=851247
- https://bugzilla.redhat.com/show_bug.cgi?id=833660
* Tue Mar 13 2012 Joe VLcek <jvlcek@redhat.com> 0.5.0-0
- Convert init scripts to sysV and systemd
- https://bugzilla.redhat.com/show_bug.cgi?id=833660
* Mon Mar 05 2012 Dan Radez <dradez@redhat.com> 0.4.6-1
- https://bugzilla.redhat.com/show_bug.cgi?id=798787
- chkconfig on for http and configserver
* Thu Feb 09 2012 Greg Blomquist <gblomqui@redhat.com> 0.4.6-0
- https://bugzilla.redhat.com/show_bug.cgi?id=788996
* Mon Jan 16 2012 Greg Blomquist <gblomqui@redhat.com> 0.4.5-2
- https://bugzilla.redhat.com/show_bug.cgi?id=781459
- https://bugzilla.redhat.com/show_bug.cgi?id=768433
- https://bugzilla.redhat.com/show_bug.cgi?id=773036
* Tue Jan 03 2012 Dan Radez <dradez@redhat.com> 0.4.5-1
- https://bugzilla.redhat.com/show_bug.cgi?id=769656
* Fri Dec 16 2011 Greg Blomquist <gblomqui@redhat.com> 0.4.4-2
- https://bugzilla.redhat.com/show_bug.cgi?id=760377
- https://bugzilla.redhat.com/show_bug.cgi?id=768425
* Mon Dec 12 2011 Greg Blomquist <gblomqui@redhat.com> 0.4.3-2
- Fix 500 on audrey-agent HTTP PUT of partial params
- https://bugzilla.redhat.com/show_bug.cgi?id=766967
* Fri Dec 09 2011 Greg Blomquist <gblomqui@redhat.com> 0.4.3-1
- Fix 500 on HTTP DELETE of deployment data
- (https://bugzilla.redhat.com/show_bug.cgi?id=766012)
* Tue Nov 29 2011 Greg Blomquist <gblomqui@redhat.com> 0.4.2-2
- Allow deletion of deployment configs
* Tue Nov 29 2011 Joe VLcek <jvlcek@redhat.com> 0.4.1-4
- Use install -m in place of cp in spec file
* Mon Nov 28 2011 Joe VLcek <jvlcek@redhat.com> 0.4.1-3
- Removed rake build comment from spec
* Mon Nov 20 2011 Joe VLcek <jvlcek@redhat.com> 0.4.1-2
- Packaging for Fedora
* Mon Nov 14 2011 Greg Blomquist <gblomqui@redhat.com> 0.4.1-1
- Enabling Config Server to process inline configuration files
* Mon Nov 14 2011 Greg Blomquist <gblomqui@redhat.com> 0.4.0-4
- Allow httpd and config server to run with selinux enabled
- Configure ip tables to open port 443
* Fri Nov 04 2011 Greg Blomquist <gblomqui@redhat.com> 0.4.0-3
- Adding new "auth" endpoint for testing oauth credentials
- Fixing audrey_data unsigned parameter name for oauth
* Thu Nov 03 2011 Greg Blomquist <gblomqui@redhat.com> 0.4.0-1
- Version bump to start being consistent with Audrey Client
* Tue Nov 01 2011 Greg Blomquist <gblomqui@redhat.com> 0.3.0-3
- Few small fixes for OAuth signature validation
* Wed Oct 26 2011 Greg Blomquist <gblomqui@redhat.com> 0.3.0-2
- Now using oauth for authentication
- Fix logging for production deployment
* Tue Oct 25 2011 Greg Blomquist <gblomqui@redhat.com> 0.2.3-5
- Explicitly require mod_ssl for proxy package
* Wed Oct 05 2011 Greg Blomquist <gblomqui@redhat.com> 0.2.3-4
- Fix rakefile to build on f16, and fixup extrarelease and dist tags in the version
* Wed Sep 07 2011 Greg Blomquist <gblomqui@redhat.com> 0.2.3-3
- Fix service to return 202 when configs are not complete
* Thu Aug 18 2011 Greg Blomquist <gblomqui@redhat.com> 0.2.3-2
- Fix syntax in spec
* Tue Aug 16 2011 Greg Blomquist <gblomqui@redhat.com> 0.2.3-1
- Updated data format for Config Server -> Audrey client API
* Wed Jul 27 2011 Greg Blomquist <gblomqui@redhat.com> 0.2.2-3
- Ability to read tarball from instance-config
- Added minitar dependency
* Tue Jul 12 2011 Greg Blomquist <gblomqui@redhat.com> 0.2.1-5
- Adding ability to upload and download a tarball for instances
* Mon Jun 27 2011 Greg Blomquist <gblomqui@redhat.com> 0.2.0-1
- Add the "proxy" sub-package
* Thu May 26 2011 Greg Blomquist <gblomqui@redhat.com> 0.1.2-2
- Kludge release that allows guests to PUT to invalid UUIDs (RHEV-M)
* Mon May 09 2011 Greg Blomquist <gblomqui@redhat.com> 0.1.2-1
- Fixed POST bug that allowed POSTing no data
* Wed May 04 2011 Greg Blomquist <gblomqui@redhat.com> 0.1.1-3
- Fixed IP storage bugs
* Wed May 04 2011 Greg Blomquist <gblomqui@redhat.com> 0.1.1-2
- Removed arch requirement from rpm spec
* Wed May 04 2011 Greg Blomquist <gblomqui@redhat.com> 0.1.1-1
- Storing IP address of instances that check-in
* Fri Apr 09 2011 Greg Blomquist <gblomqui@redhat.com> 0.1.0-1
- Now supporting multi-instance configuration
* Thu Mar 24 2011 Greg Blomquist <gblmoqui@redhat.com> 0.0.2-2
- Added Nokogiri dependency
* Thu Mar 24 2011 Greg Blomquist <gblmoqui@redhat.com> 0.0.2-1
- Version bump for major functionality implementation
* Wed Mar 16 2011 Greg Blomquist <gblmoqui@redhat.com> 0.0.1-1
- Initial spec