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.
#
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