Skip to content

Commit

Permalink
Add hierarchy back to builds in releases.
Browse files Browse the repository at this point in the history
This adds the notion of hierarchy to builds within a release.
If a build has a symlink named "parent" in its directory, then it will
inherit barclamp metadata from the build that the parent symlink points to.

This patch also adds more paranoia when doing builds using a git
managed build cache.
  • Loading branch information
VictorLowther committed Sep 28, 2012
1 parent d54e857 commit 247b4b0
Show file tree
Hide file tree
Showing 352 changed files with 206 additions and 420 deletions.
45 changes: 41 additions & 4 deletions build_lib.sh
Expand Up @@ -820,7 +820,8 @@ test_iso() {
get_repo_cfg() { in_repo git config --get "$1"; }
git_config_has() { git config --get "$1" &>/dev/null; }
current_build() { get_repo_cfg 'crowbar.build'; }
build_exists() [[ -f $CROWBAR_DIR/releases/$1/barclamp-crowbar ]]
build_exists() [[ -f $CROWBAR_DIR/releases/$1/barclamp-crowbar || \
-L $CROWBAR_DIR/releases/$1/parent ]]

barclamp_exists_in_build() {
local build=${1%/*} bc=${1##*/}
Expand Down Expand Up @@ -862,23 +863,59 @@ barclamp_finder() {
done < <(find "$CROWBAR_DIR/releases/$1" -name 'barclamp-*') |sort -u
}

barclamps_in_build() {
barclamps_from_build() {
flat_checkout || die "Cannot get list of barclamps, must flatten build first!"
local build bc
build="${1:-$(current_build)}"
barclamp_finder "$build" '/barclamp-(.+)$'
}

parent_build() {
build_exists "$1" || die "Cannot find parent of nonexistent build $1"
[[ -L $CROWBAR_DIR/releases/$1/parent ]] || return 0
local p
p="$(readlink -f "$CROWBAR_DIR/releases/$1/parent")"
echo "${p##*releases/}"
}

barclamps_in_build() {
local build bc p
build="${1:-$(current_build)}"
p="$(parent_build "$build")"
[[ $p ]] && barclamps_in_build "$p"
barclamps_from_build "$build"
}

barclamps_in_release() {
local release="${1:-$(current_release)}"
release_exists "$release" || return 1
barclamp_finder "$release" '/barclamp-(.+)$'
}

builds_in_release() {
local release="${1:-$(current_release)}"
local release="${1:-$(current_release)}" p build b
local -A builds
release_exists "$release" || return 1
barclamp_finder "$release" "releases/.+/([^/]+)/barclamp-crowbar"
for build in $(barclamp_finder "$release" "releases/.+/([^/]+)/barclamp-crowbar"); do
p=$(parent_build "$release/$build")
if [[ $p && ${builds[$p]} != echoed ]]; then
builds["$release/$build"]="$p"
else
echo "$build"
builds["$release/$build"]="echoed"
fi
done
while [[ true ]]; do
b=true
for build in "${!builds[@]}"; do
p="${builds[$build]}"
[[ $p = echoed || ${builds[$p]} != echoed ]] && continue
echo "${build##*/}"
builds[$build]=echoed
b=false
done
[[ $b = true ]] && break
done
}

all_barclamps() {
Expand Down
231 changes: 141 additions & 90 deletions dev

Large diffs are not rendered by default.

1 change: 0 additions & 1 deletion releases/development/cloudera-build/barclamp-ApacheHadoop

This file was deleted.

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/cloudera-build/barclamp-crowbar

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/cloudera-build/barclamp-deployer

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/cloudera-build/barclamp-dns

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/cloudera-build/barclamp-ganglia

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/cloudera-build/barclamp-hive

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/cloudera-build/barclamp-ipmi

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/cloudera-build/barclamp-logging

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/cloudera-build/barclamp-nagios

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/cloudera-build/barclamp-network

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/cloudera-build/barclamp-ntp

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/cloudera-build/barclamp-pig

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/cloudera-build/barclamp-provisioner

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/cloudera-build/barclamp-sqoop

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/cloudera-build/barclamp-test

This file was deleted.

1 change: 1 addition & 0 deletions releases/development/cloudera-build/parent
1 change: 0 additions & 1 deletion releases/development/cloudera-os-build/barclamp-crowbar

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/cloudera-os-build/barclamp-deployer

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/cloudera-os-build/barclamp-dns

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/cloudera-os-build/barclamp-ganglia

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/cloudera-os-build/barclamp-ipmi

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/cloudera-os-build/barclamp-logging

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/cloudera-os-build/barclamp-nagios

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/cloudera-os-build/barclamp-network

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/cloudera-os-build/barclamp-ntp

This file was deleted.

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/cloudera-os-build/barclamp-test

This file was deleted.

1 change: 1 addition & 0 deletions releases/development/cloudera-os-build/parent
1 change: 0 additions & 1 deletion releases/development/hadoop-build/barclamp-ApacheHadoop

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/hadoop-build/barclamp-crowbar

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/hadoop-build/barclamp-deployer

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/hadoop-build/barclamp-dns

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/hadoop-build/barclamp-ganglia

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/hadoop-build/barclamp-hadoop

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/hadoop-build/barclamp-hive

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/hadoop-build/barclamp-ipmi

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/hadoop-build/barclamp-logging

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/hadoop-build/barclamp-nagios

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/hadoop-build/barclamp-network

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/hadoop-build/barclamp-ntp

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/hadoop-build/barclamp-pig

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/hadoop-build/barclamp-provisioner

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/hadoop-build/barclamp-sqoop

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/hadoop-build/barclamp-test

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/hadoop-build/barclamp-zookeeper

This file was deleted.

1 change: 1 addition & 0 deletions releases/development/hadoop-build/parent
1 change: 0 additions & 1 deletion releases/development/hadoop-os-build/barclamp-crowbar

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/hadoop-os-build/barclamp-deployer

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/hadoop-os-build/barclamp-dns

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/hadoop-os-build/barclamp-ganglia

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/hadoop-os-build/barclamp-ipmi

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/hadoop-os-build/barclamp-logging

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/hadoop-os-build/barclamp-nagios

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/hadoop-os-build/barclamp-network

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/hadoop-os-build/barclamp-ntp

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/hadoop-os-build/barclamp-provisioner

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/hadoop-os-build/barclamp-test

This file was deleted.

1 change: 1 addition & 0 deletions releases/development/hadoop-os-build/parent
1 change: 0 additions & 1 deletion releases/development/openstack-build/barclamp-crowbar

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/openstack-build/barclamp-deployer

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/openstack-build/barclamp-dns

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/openstack-build/barclamp-ganglia

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/openstack-build/barclamp-glance

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/openstack-build/barclamp-ipmi

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/openstack-build/barclamp-keystone

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/openstack-build/barclamp-logging

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/openstack-build/barclamp-mysql

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/openstack-build/barclamp-nagios

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/openstack-build/barclamp-network

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/openstack-build/barclamp-nova

This file was deleted.

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/openstack-build/barclamp-ntp

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/openstack-build/barclamp-openstack

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/openstack-build/barclamp-provisioner

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/openstack-build/barclamp-swift

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/openstack-build/barclamp-tempest

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/openstack-build/barclamp-test

This file was deleted.

1 change: 1 addition & 0 deletions releases/development/openstack-build/parent
1 change: 0 additions & 1 deletion releases/development/openstack-os-build/barclamp-crowbar

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/openstack-os-build/barclamp-deployer

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/openstack-os-build/barclamp-dns

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/openstack-os-build/barclamp-ganglia

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/openstack-os-build/barclamp-ipmi

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/openstack-os-build/barclamp-logging

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/openstack-os-build/barclamp-nagios

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/openstack-os-build/barclamp-network

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/openstack-os-build/barclamp-ntp

This file was deleted.

This file was deleted.

1 change: 0 additions & 1 deletion releases/development/openstack-os-build/barclamp-test

This file was deleted.

1 change: 1 addition & 0 deletions releases/development/openstack-os-build/parent
1 change: 0 additions & 1 deletion releases/elefante/cloudera-build/barclamp-ApacheHadoop

This file was deleted.

1 change: 0 additions & 1 deletion releases/elefante/cloudera-build/barclamp-clouderamanager

This file was deleted.

1 change: 0 additions & 1 deletion releases/elefante/cloudera-build/barclamp-crowbar

This file was deleted.

1 change: 0 additions & 1 deletion releases/elefante/cloudera-build/barclamp-deployer

This file was deleted.

1 change: 0 additions & 1 deletion releases/elefante/cloudera-build/barclamp-dns

This file was deleted.

1 change: 0 additions & 1 deletion releases/elefante/cloudera-build/barclamp-ganglia

This file was deleted.

1 change: 0 additions & 1 deletion releases/elefante/cloudera-build/barclamp-hive

This file was deleted.

1 change: 0 additions & 1 deletion releases/elefante/cloudera-build/barclamp-ipmi

This file was deleted.

1 change: 0 additions & 1 deletion releases/elefante/cloudera-build/barclamp-logging

This file was deleted.

1 change: 0 additions & 1 deletion releases/elefante/cloudera-build/barclamp-nagios

This file was deleted.

1 change: 0 additions & 1 deletion releases/elefante/cloudera-build/barclamp-network

This file was deleted.

1 change: 0 additions & 1 deletion releases/elefante/cloudera-build/barclamp-ntp

This file was deleted.

1 change: 0 additions & 1 deletion releases/elefante/cloudera-build/barclamp-pig

This file was deleted.

1 change: 0 additions & 1 deletion releases/elefante/cloudera-build/barclamp-provisioner

This file was deleted.

1 change: 0 additions & 1 deletion releases/elefante/cloudera-build/barclamp-sqoop

This file was deleted.

1 change: 0 additions & 1 deletion releases/elefante/cloudera-build/barclamp-test

This file was deleted.

1 change: 1 addition & 0 deletions releases/elefante/cloudera-build/parent
1 change: 0 additions & 1 deletion releases/elefante/cloudera-os-build/barclamp-crowbar

This file was deleted.

1 change: 0 additions & 1 deletion releases/elefante/cloudera-os-build/barclamp-deployer

This file was deleted.

1 change: 0 additions & 1 deletion releases/elefante/cloudera-os-build/barclamp-dns

This file was deleted.

1 change: 0 additions & 1 deletion releases/elefante/cloudera-os-build/barclamp-ganglia

This file was deleted.

1 change: 0 additions & 1 deletion releases/elefante/cloudera-os-build/barclamp-ipmi

This file was deleted.

1 change: 0 additions & 1 deletion releases/elefante/cloudera-os-build/barclamp-logging

This file was deleted.

1 change: 0 additions & 1 deletion releases/elefante/cloudera-os-build/barclamp-nagios

This file was deleted.

1 change: 0 additions & 1 deletion releases/elefante/cloudera-os-build/barclamp-network

This file was deleted.

1 change: 0 additions & 1 deletion releases/elefante/cloudera-os-build/barclamp-ntp

This file was deleted.

1 change: 0 additions & 1 deletion releases/elefante/cloudera-os-build/barclamp-provisioner

This file was deleted.

1 change: 0 additions & 1 deletion releases/elefante/cloudera-os-build/barclamp-test

This file was deleted.

1 change: 1 addition & 0 deletions releases/elefante/cloudera-os-build/parent
1 change: 0 additions & 1 deletion releases/essex-hack/openstack-build/barclamp-crowbar

This file was deleted.

1 change: 0 additions & 1 deletion releases/essex-hack/openstack-build/barclamp-deployer

This file was deleted.

1 change: 0 additions & 1 deletion releases/essex-hack/openstack-build/barclamp-dns

This file was deleted.

1 change: 0 additions & 1 deletion releases/essex-hack/openstack-build/barclamp-ganglia

This file was deleted.

1 change: 0 additions & 1 deletion releases/essex-hack/openstack-build/barclamp-glance

This file was deleted.

1 change: 0 additions & 1 deletion releases/essex-hack/openstack-build/barclamp-ipmi

This file was deleted.

1 change: 0 additions & 1 deletion releases/essex-hack/openstack-build/barclamp-keystone

This file was deleted.

1 change: 0 additions & 1 deletion releases/essex-hack/openstack-build/barclamp-kong

This file was deleted.

1 change: 0 additions & 1 deletion releases/essex-hack/openstack-build/barclamp-logging

This file was deleted.

1 change: 0 additions & 1 deletion releases/essex-hack/openstack-build/barclamp-mysql

This file was deleted.

1 change: 0 additions & 1 deletion releases/essex-hack/openstack-build/barclamp-nagios

This file was deleted.

1 change: 0 additions & 1 deletion releases/essex-hack/openstack-build/barclamp-network

This file was deleted.

1 change: 0 additions & 1 deletion releases/essex-hack/openstack-build/barclamp-nova

This file was deleted.

This file was deleted.

1 change: 0 additions & 1 deletion releases/essex-hack/openstack-build/barclamp-ntp

This file was deleted.

1 change: 0 additions & 1 deletion releases/essex-hack/openstack-build/barclamp-openstack

This file was deleted.

1 change: 0 additions & 1 deletion releases/essex-hack/openstack-build/barclamp-provisioner

This file was deleted.

1 change: 0 additions & 1 deletion releases/essex-hack/openstack-build/barclamp-quantum

This file was deleted.

1 change: 0 additions & 1 deletion releases/essex-hack/openstack-build/barclamp-swift

This file was deleted.

1 change: 0 additions & 1 deletion releases/essex-hack/openstack-build/barclamp-test

This file was deleted.

1 change: 1 addition & 0 deletions releases/essex-hack/openstack-build/parent
1 change: 0 additions & 1 deletion releases/essex-hack/openstack-os-build/barclamp-crowbar

This file was deleted.

1 change: 0 additions & 1 deletion releases/essex-hack/openstack-os-build/barclamp-deployer

This file was deleted.

1 change: 0 additions & 1 deletion releases/essex-hack/openstack-os-build/barclamp-dns

This file was deleted.

1 change: 0 additions & 1 deletion releases/essex-hack/openstack-os-build/barclamp-ganglia

This file was deleted.

1 change: 0 additions & 1 deletion releases/essex-hack/openstack-os-build/barclamp-ipmi

This file was deleted.

1 change: 0 additions & 1 deletion releases/essex-hack/openstack-os-build/barclamp-logging

This file was deleted.

1 change: 0 additions & 1 deletion releases/essex-hack/openstack-os-build/barclamp-nagios

This file was deleted.

1 change: 0 additions & 1 deletion releases/essex-hack/openstack-os-build/barclamp-network

This file was deleted.

1 change: 0 additions & 1 deletion releases/essex-hack/openstack-os-build/barclamp-ntp

This file was deleted.

This file was deleted.

1 change: 0 additions & 1 deletion releases/essex-hack/openstack-os-build/barclamp-test

This file was deleted.

1 change: 1 addition & 0 deletions releases/essex-hack/openstack-os-build/parent
1 change: 0 additions & 1 deletion releases/fledermaus/openstack-build/barclamp-crowbar

This file was deleted.

1 change: 0 additions & 1 deletion releases/fledermaus/openstack-build/barclamp-deployer

This file was deleted.

1 change: 0 additions & 1 deletion releases/fledermaus/openstack-build/barclamp-dns

This file was deleted.

1 change: 0 additions & 1 deletion releases/fledermaus/openstack-build/barclamp-ganglia

This file was deleted.

1 change: 0 additions & 1 deletion releases/fledermaus/openstack-build/barclamp-glance

This file was deleted.

0 comments on commit 247b4b0

Please sign in to comment.