Blob Blame History Raw
#
#   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.
#
%define app_root %{_datadir}/%{name}

Name:       aeolus-configserver
Version:    0.4.1
Release:    5%{?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

BuildRequires:   ruby
BuildRequires:   ruby-devel
BuildRequires:   help2man

Requires:        httpd
Requires:        mod_ssl
Requires:        puppet
Requires:        ruby >= 1.8.1
Requires:        ruby-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

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/config.in.ru \
    src/configserver.rb %{buildroot}/%{app_root}

install -m 0644 \
    src/lib/application_helper.rb \
    src/lib/config_handler.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/instance.rb %{buildroot}/%{app_root}/lib/model

# copy over init scripts and configs
install conf/%{name} %{buildroot}/%{_initrddir}
install -m 0644 conf/%{name}.sysconf \
    %{buildroot}%{_sysconfdir}/sysconfig/%{name}
install -m 0644 conf/%{name}-proxy.sysconf \
    %{buildroot}%{_sysconfdir}/sysconfig/%{name}-proxy
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

# 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
chkconfig --add %{name}

%preun
# stop and unregister the service before package deletion
if [ $1 = 0 ]; then
  service %{name} stop > /dev/null 2>&1
  chkconfig --del %{name}
fi

%files
%defattr(-,root,root,-)
%{_bindir}/aeolus-configserver-setup
%config(noreplace) %{_sysconfdir}/sysconfig/%{name}-proxy
%{app_root}
%dir %{_sysconfdir}/%{name}
%{_initrddir}/%{name}
%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
* Thu Jan 12 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.4.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild

* 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