Restore and clarify config_version functionality
This branch is intended as a portability fix. Some functionailty had been inadvertently removed as unused, but testing revealed that it had a purpose. Because the purpose was unclear, this commit restores the functionality AND clarifies it in the script names and comments in config_version.sh.
This commit is contained in:
parent
415a71dd59
commit
ada94157a4
1
scripts/code_manager_config_version.rb → scripts/config_version-r10k.rb
Normal file → Executable file
1
scripts/code_manager_config_version.rb → scripts/config_version-r10k.rb
Normal file → Executable file
@ -1,3 +1,4 @@
|
|||||||
|
#!/opt/puppetlabs/puppet/bin/ruby
|
||||||
require 'json'
|
require 'json'
|
||||||
require 'socket'
|
require 'socket'
|
||||||
|
|
25
scripts/config_version-rugged.rb
Executable file
25
scripts/config_version-rugged.rb
Executable file
@ -0,0 +1,25 @@
|
|||||||
|
#!/opt/puppetlabs/puppet/bin/ruby
|
||||||
|
begin
|
||||||
|
require 'rugged'
|
||||||
|
require 'socket'
|
||||||
|
rescue LoadError
|
||||||
|
t = Time.new
|
||||||
|
puts t.to_i
|
||||||
|
else
|
||||||
|
environmentpath = ARGV[0]
|
||||||
|
environment = ARGV[1]
|
||||||
|
|
||||||
|
# Get the hostname of the Puppet master compiling the catalog.
|
||||||
|
# Sometimes the hostname is the fqdn, so we'll take the first segment.
|
||||||
|
compiling_master = Socket.gethostname.split('.').first
|
||||||
|
|
||||||
|
# Get the path to the environment being compiled.
|
||||||
|
repo = Rugged::Repository.discover(File.join(environmentpath, environment))
|
||||||
|
head = repo.head
|
||||||
|
|
||||||
|
# First 12 characters of the sha1 hash of the newest commit.
|
||||||
|
commit_id = head.target_id[0...11]
|
||||||
|
|
||||||
|
# Show the compiling master, environment name, and commit ID.
|
||||||
|
puts "#{compiling_master}-#{environment}-#{commit_id}"
|
||||||
|
end
|
@ -1,14 +1,35 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Usage
|
||||||
if [ $# -ne 2 -o ! -d "$1" -o ! -d "$1/$2" ]; then
|
if [ $# -ne 2 -o ! -d "$1" -o ! -d "$1/$2" ]; then
|
||||||
echo "usage: $0 <environmentpath> <environment>" >&2
|
echo "usage: $0 <environmentpath> <environment>" >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
ruby=ruby
|
# For portability, identify a preferred ruby executable to use
|
||||||
|
ruby() {
|
||||||
|
[ -x /opt/puppetlabs/puppet/bin/ruby ] \
|
||||||
|
&& /opt/puppetlabs/puppet/bin/ruby "$@" \
|
||||||
|
|| /usr/bin/env ruby "$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Determine how best to calculate a config_version
|
||||||
|
if [ -e $1/$2/.r10k-deploy.json ]; then
|
||||||
|
# The environment was deployed using r10k. We will calculate the config
|
||||||
|
# version using the r10k data.
|
||||||
|
ruby $1/$2/scripts/config_version-r10k.rb $1 $2
|
||||||
|
|
||||||
|
elif [ -e /opt/puppetlabs/server/pe_version ]; then
|
||||||
|
# This is a Puppet Enterprise system and we can rely on the rugged ruby gem
|
||||||
|
# being available.
|
||||||
|
ruby $1/$2/scripts/config_version-rugged.rb $1 $2
|
||||||
|
|
||||||
|
elif [ -x /usr/bin/git ]; then
|
||||||
|
# The git command is available.
|
||||||
|
/usr/bin/git --git-dir $1/$2/.git rev-parse HEAD
|
||||||
|
|
||||||
|
else
|
||||||
|
# Nothing else available; just use the date.
|
||||||
|
date +%s
|
||||||
|
|
||||||
if [ -x /opt/puppetlabs/puppet/bin/ruby ]; then
|
|
||||||
ruby=/opt/puppetlabs/puppet/bin/ruby
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
"${ruby}" "$1/$2/scripts/code_manager_config_version.rb" "$1" "$2"
|
|
||||||
|
Loading…
Reference in New Issue
Block a user