Replace manual git work with vcsrepo module.
Change-Id: Ia0f3acd50aab07cc83d13cd12c8f7fc67f1c697d
Reviewed-on: https://review.openstack.org/10832
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Reviewed-by: James E. Blair <corvus@inaugust.com>
Approved: Monty Taylor <mordred@inaugust.com>
Tested-by: Jenkins
diff --git a/manifests/init.pp b/manifests/init.pp
index a4c6492..4da8c09 100644
--- a/manifests/init.pp
+++ b/manifests/init.pp
@@ -1,49 +1,3 @@
-# define to manage a git repo (should replace with vcsrepo module)
-define git_repo (
- $repo,
- $dest,
- $user = 'root',
- $branch = 'master',
- $clone_only = undef
-) {
-
- if $clone_only == 'true' {
- $checkout_condition = "false"
- }
- else {
- $checkout_condition = "test -d ${dest}"
- }
-
-# if we already have the git repo the pull updates
- exec { "update_${title}":
- command => "git pull --ff-only origin ${branch}",
- cwd => $dest,
- path => '/bin:/usr/bin',
- user => $user,
- onlyif => $checkout_condition,
- before => Exec["clone_${title}"],
- }
-
-# otherwise get a new clone of it
- exec { "clone_${title}":
- command => "git clone ${repo} ${dest}",
- path => '/bin:/usr/bin',
- user => $user,
- onlyif => "test ! -d ${dest}",
- } ->
-
- exec { "checkout_${title}_${branch}":
- command => "git checkout ${branch}",
- path => '/bin:/usr/bin',
- cwd => $dest,
- user => $user,
- subscribe => Exec["clone_${title}"],
- refreshonly => true,
- onlyif => "test -d ${dest}"
- }
-
-}
-
# define to build from source using ./configure && make && make install.
define buildsource(
$dir = $title,
@@ -114,11 +68,11 @@
mode => 0664,
}
- git_repo { 'nodejs_repo':
- repo => 'https://github.com/joyent/node.git',
- dest => "${base_install_dir}/nodejs",
- branch => 'v0.6.16-release',
- clone_only => 'true',
+ vcsrepo { "${base_install_dir}/nodejs":
+ ensure => present,
+ provider => git,
+ source => 'https://github.com/joyent/node.git',
+ revision => 'origin/v0.6.16-release',
require => Package['git']
}
@@ -144,15 +98,15 @@
Package['libssl-dev'],
Package['pkg-config'],
Package['build-essential'],
- Git_repo['nodejs_repo']]
+ Vcsrepo["${base_install_dir}/nodejs"]]
}
- git_repo { 'etherpad_repo':
- repo => 'https://github.com/Pita/etherpad-lite.git',
- dest => "${base_install_dir}/etherpad-lite",
- user => $ep_user,
- clone_only => 'true',
- require => Package['git']
+ vcsrepo { "${base_install_dir}/etherpad-lite":
+ ensure => present,
+ provider => git,
+ source => "https://github.com/Pita/etherpad-lite.git",
+ owner => $ep_user,
+ require => Package['git'],
}
exec { 'install_etherpad_dependencies':
@@ -161,7 +115,7 @@
user => $ep_user,
cwd => "${base_install_dir}/etherpad-lite",
environment => "HOME=${base_log_dir}/${ep_user}",
- require => [Git_repo['etherpad_repo'],
+ require => [Vcsrepo["${base_install_dir}/etherpad-lite"],
Buildsource["${base_install_dir}/nodejs"]],
before => File["${base_install_dir}/etherpad-lite/settings.json"],
creates => "${base_install_dir}/etherpad-lite/node_modules"