Paul Van Eck c606f64c73 Update RefStack repo name
Since RefStack moved from stackforge to openstack, the repo
name should reflect this change.

Change-Id: I7c787c4f975295ff856d041f4cbe3eb1890e7619
2015-09-22 16:16:09 -07:00

102 lines
2.7 KiB
Puppet

# Copyright (c) 2015 Hewlett-Packard Development Company, L.P.
#
# 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: refstack::api
#
# This class installs the RefStack API so that it may be run via wsgi.
#
class refstack::api () {
require ::refstack::params
require ::refstack::user
# Import parameters into local scope.
$src_api_root = $::refstack::params::src_api_root
$user = $::refstack::params::user
$group = $::refstack::params::group
# Ensure Git is present
if !defined(Package['git']) {
package { 'git':
ensure => present
}
}
# Ensure python-dev is present
if !defined(Package['python-dev']) {
package { 'python-dev':
ensure => present
}
}
# Ensure OpenSSL is present
if !defined(Package['libssl-dev']) {
package { 'libssl-dev':
ensure => present
}
}
# Create the RefStack configuration directory.
file { '/etc/refstack':
ensure => directory,
owner => $user,
group => $group,
mode => '0755',
}
# Configure the RefStack API.
file { '/etc/refstack/refstack.conf':
ensure => present,
owner => $user,
group => $group,
mode => '0644',
content => template('refstack/refstack.conf.erb'),
require => [
File['/etc/refstack']
]
}
# Download the latest RefStack Source.
vcsrepo { $src_api_root:
ensure => latest,
provider => git,
revision => 'master',
source => 'https://git.openstack.org/openstack/refstack/',
require => Package['git']
}
# Install RefStack using pip.
exec { 'install-refstack':
command => "pip install ${src_api_root}",
path => '/usr/local/bin:/usr/bin:/bin',
refreshonly => true,
require => Vcsrepo[$src_api_root],
subscribe => Vcsrepo[$src_api_root],
}
# Migrate the database.
exec { 'migrate-refstack-db':
command => 'refstack-manage --config-file /etc/refstack/refstack.conf upgrade --revision head',
path => '/usr/local/bin:/usr/bin:/bin',
refreshonly => true,
subscribe => [
Exec['install-refstack'],
File['/etc/refstack/refstack.conf'],
],
require => [
Exec['install-refstack'],
File['/etc/refstack/refstack.conf'],
],
}
}