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.
#
%global app_root %{_datadir}/%{name}

Name:       aeolus-configserver
Version:    0.4.8
Release:    1%{?dist}
Summary:    The Aeolus Config Server

Group:      Applications/System
License:    ASL 2.0
URL:        http://aeolusproject.org
Source0:    https://github.com/aeolusproject/audrey/tarball/1.0/aeolus-configserver-%{version}.tgz

BuildRequires:   rubygems
%if 0%{?fedora} >= 17
BuildRequires:   ruby(abi) >= 1.9
%else
BuildRequires:   ruby(abi) = 1.8
%endif
BuildRequires:   ruby-devel
BuildRequires:   help2man

Requires:        httpd
Requires:        mod_ssl
Requires:        puppet
Requires:        rubygems
%if 0%{?fedora} >= 17
Requires:        ruby(abi) >= 1.9
%else
Requires:        ruby(abi) = 1.8
%endif
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

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}%{app_root}/examples
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/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

install examples/katello-register.xml \
    %{buildroot}%{app_root}/examples

# 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
/sbin/chkconfig --add %{name}
/sbin/chkconfig %{name} on
/sbin/chkconfig httpd on

%preun
# cleanup the service before package deletion
if [ $1 = 0 ]; then
  /sbin/service %{name} stop > /dev/null 2>&1
  /sbin/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 Apr 12 2012 Greg Blomquist <gblomqui@redhat.com> 0.4.8-1
- Fixes provided by jlaska@redhat.com for BZ 812107
- https://bugzilla.redhat.com/show_bug.cgi?id=812107
- Update the comment in preun to avoid BZ 803864
- https://bugzilla.redhat.com/show_bug.cgi?id=803864
* Tue Apr 10 2012 Greg Blomquist <gblomqui@redhat.com> 0.4.7-1
- Updated deployable XML file for Katello registration
- https://bugzilla.redhat.com/show_bug.cgi?id=807473
* Wed Mar 28 2012 Greg Blomquist <gblomqui@redhat.com> 0.4.6-2
- Added facility to host example deployable XML files
- Added first example deployable XML file for Katello registration
- https://bugzilla.redhat.com/show_bug.cgi?id=807473
* 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