diff --git a/modules/openstack_project/manifests/static.pp b/modules/openstack_project/manifests/static.pp index 5c42696753..c5ac90f0e5 100644 --- a/modules/openstack_project/manifests/static.pp +++ b/modules/openstack_project/manifests/static.pp @@ -264,4 +264,14 @@ class openstack_project::static ( reviewday_rsa_pubkey_contents => $reviewday_rsa_pubkey_contents, reviewday_rsa_key_contents => $reviewday_rsa_key_contents, } + + ########################################################### + # Status - releasestatus + + include releasestatus + + releasestatus::site { 'releasestatus': + configfile => 'integrated.yaml', + httproot => '/srv/static/release.new', + } } diff --git a/modules/releasestatus/files/integrated.yaml b/modules/releasestatus/files/integrated.yaml new file mode 100644 index 0000000000..03bee6a923 --- /dev/null +++ b/modules/releasestatus/files/integrated.yaml @@ -0,0 +1,26 @@ +# Name of the series +series: havana + +# Final release date +releasedate: 2013-10-17 + +# Short milestone codes, with number of weeks leading to them +# The last one should be the release date +milestones: + - [6, h1] + - [6, h2] + - [6, h3] + - [5, Oct 17] + +# Set of projects to consider in the report +products: + - nova + - glance + - swift + - keystone + - horizon + - quantum + - cinder + - oslo + - ceilometer + - heat diff --git a/modules/releasestatus/manifests/init.pp b/modules/releasestatus/manifests/init.pp new file mode 100644 index 0000000000..7c29ca47da --- /dev/null +++ b/modules/releasestatus/manifests/init.pp @@ -0,0 +1,74 @@ +# Copyright 2013 Thierry Carrez +# +# 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. +# +# Class: releasestatus +# +class releasestatus { + if ! defined(Package['python-launchpadlib']) { + package { 'python-launchpadlib': + ensure => present, + } + } + + if ! defined(Package['python-jinja2']) { + package { 'python-jinja2': + ensure => present, + } + } + + if ! defined(Package['python-yaml']) { + package { 'python-yaml': + ensure => present, + } + } + + group { 'releasestatus': + ensure => present, + } + + user { 'releasestatus': + ensure => present, + home => '/var/lib/releasestatus', + shell => '/bin/bash', + gid => 'releasestatus', + managehome => true, + require => Group['releasestatus'], + } + + file { '/var/lib/releasestatus': + ensure => directory, + owner => 'releasestatus', + group => 'releasestatus', + mode => '0755', + require => User['releasestatus'], + } + + file { '/var/lib/releasestatus/releasestatus': + ensure => directory, + owner => 'releasestatus', + group => 'releasestatus', + mode => '0755', + require => File['/var/lib/releasestatus/'], + } + + vcsrepo { '/var/lib/releasestatus/releasestatus': + ensure => latest, + provider => git, + source => 'https://github.com/openstack-infra/releasestatus.git', + revision => 'master', + require => File['/var/lib/releasestatus'], + } +} + +# vim:sw=2:ts=2:expandtab:textwidth=79 diff --git a/modules/releasestatus/manifests/site.pp b/modules/releasestatus/manifests/site.pp new file mode 100644 index 0000000000..da3e83ce7a --- /dev/null +++ b/modules/releasestatus/manifests/site.pp @@ -0,0 +1,46 @@ +# Copyright 2013 Thierry Carrez +# +# 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: releasestatus +# +define releasestatus::site( + $configfile = '', + $httproot = '', +) { + + file { "/var/lib/releasestatus/${configfile}": + mode => '0444', + source => "puppet:///modules/releasestatus/${configfile}", + require => File['/var/lib/releasestatus'], + } + + file { $httproot: + ensure => directory, + owner => 'releasestatus', + group => 'releasestatus', + mode => '0755', + source => '/var/lib/releasestatus/releasestatus/static', + recurse => remote, + require => File['/var/lib/releasestatus'], + } + + cron { "update releasestatus ${configfile}": + command => "python /var/lib/releasestatus/releasestatus/releasestatus.py /var/lib/releasestatus/${configfile} > ${httproot}/new.html && mv ${httproot}/new.html ${httproot}/index.html", + minute => '*/20', + user => 'releasestatus', + } + +} + +# vim:sw=2:ts=2:expandtab:textwidth=79