Skip to content
This repository has been archived by the owner on Aug 29, 2018. It is now read-only.

Commit

Permalink
Bug 1076626 - Fix LD_LIBRARY_PATH for cron_runjobs
Browse files Browse the repository at this point in the history
  • Loading branch information
mfojtik committed Mar 17, 2014
1 parent 8c2ee91 commit 3755dfc
Show file tree
Hide file tree
Showing 3 changed files with 69 additions and 53 deletions.
15 changes: 3 additions & 12 deletions cartridges/openshift-origin-cartridge-cron/bin/cron_runjobs.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/bin/bash

source $OPENSHIFT_CARTRIDGE_SDK_BASH
source "/usr/lib/openshift/cartridge_sdk/bash/sdk"

# source OpenShift environment variable into context
function load_env {
Expand Down Expand Up @@ -32,17 +32,8 @@ do
load_env $f
done

path=$(get_gear_path)

if [ -f /etc/openshift/env/PATH ]
then
load_env /etc/openshift/PATH
path=$path:$PATH
fi

export PATH=$path

export LD_LIBRARY_PATH=$(get_gear_ld_library_path)
export PATH=$(build_path)
export LD_LIBRARY_PATH=$(build_ld_library_path)

CART_CONF_DIR=$OPENSHIFT_CRON_DIR/configuration

Expand Down
43 changes: 2 additions & 41 deletions node/misc/bin/rhcsh
Original file line number Diff line number Diff line change
Expand Up @@ -28,47 +28,8 @@ then
done
fi

path=""
ld_path=""

prim_cart=$(echo $OPENSHIFT_PRIMARY_CARTRIDGE_DIR | awk -F/ '{print toupper($(NF-1))}')

for f in $(env | grep OPENSHIFT_.*_PATH_ELEMENT | grep -v OPENSHIFT_${prim_cart}_)
do
element=$(echo $f | sed 's/^.*=\(.*\)$/\1/')
[[ -z $element ]] && continue

if [[ $f == OPENSHIFT_*_LD_LIBRARY_PATH_ELEMENT* ]]; then
ld_path="${element}:${ld_path}"
else
path="${element}:${path}"
fi

done

for f in $OPENSHIFT_PRIMARY_CARTRIDGE_DIR/env/OPENSHIFT_*_PATH_ELEMENT
do
if [[ $f == *OPENSHIFT_*_LD_LIBRARY_PATH_ELEMENT ]]; then
test -f ${f} && ld_path="${ld_path}$(< $f)"
else
test -f ${f} && path=$(< $f):$path
fi
done

if [ -f /etc/openshift/env/PATH ]
then
load_env /etc/openshift/env/PATH
path="${path}${PATH}"
fi

if [ -f /etc/openshift/env/LD_LIBRARY_PATH ]
then
load_env /etc/openshift/env/LD_LIBRARY_PATH
ld_path=$ld_path:$LD_LIBRARY_PATH
fi

export PATH=$path
export LD_LIBRARY_PATH=$ld_path
export PATH=$(build_path)
export LD_LIBRARY_PATH=$(build_ld_library_path)

for f in ~/.env/user_vars/*
do
Expand Down
64 changes: 64 additions & 0 deletions node/misc/usr/lib/cartridge_sdk/bash/sdk
Original file line number Diff line number Diff line change
Expand Up @@ -636,3 +636,67 @@ function version_in_range() {

return $in_range
}

function build_path() {
local path=""
local prim_cart=$(echo $OPENSHIFT_PRIMARY_CARTRIDGE_DIR | awk -F/ '{print toupper($(NF-1))}')

for f in $(env | grep OPENSHIFT_.*_PATH_ELEMENT | grep -v OPENSHIFT_${prim_cart}_)
do
element=$(echo $f | sed 's/^.*=\(.*\)$/\1/')

[[ -z $element ]] && continue

if [[ $f != OPENSHIFT_*_LD_LIBRARY_PATH_ELEMENT* ]]; then
path="${element}:${path}"
fi

done

for f in $OPENSHIFT_PRIMARY_CARTRIDGE_DIR/env/OPENSHIFT_*_PATH_ELEMENT
do
if [[ $f != *OPENSHIFT_*_LD_LIBRARY_PATH_ELEMENT ]]; then
test -f ${f} && path=$(< $f):$path
fi
done

if [ -f /etc/openshift/env/PATH ]
then
load_env /etc/openshift/env/PATH
path="${path}${PATH}"
fi

echo -n $path
}

function build_ld_library_path() {
local ld_path=""
local prim_cart=$(echo $OPENSHIFT_PRIMARY_CARTRIDGE_DIR | awk -F/ '{print toupper($(NF-1))}')

for f in $(env | grep OPENSHIFT_.*_PATH_ELEMENT | grep -v OPENSHIFT_${prim_cart}_)
do
element=$(echo $f | sed 's/^.*=\(.*\)$/\1/')
[[ -z $element ]] && continue

if [[ $f == OPENSHIFT_*_LD_LIBRARY_PATH_ELEMENT* ]]; then
ld_path="${element}:${ld_path}"
fi

done

for f in $OPENSHIFT_PRIMARY_CARTRIDGE_DIR/env/OPENSHIFT_*_PATH_ELEMENT
do
if [[ $f == *OPENSHIFT_*_LD_LIBRARY_PATH_ELEMENT ]]; then
test -f ${f} && ld_path="${ld_path}$(< $f)"
fi
done

if [ -f /etc/openshift/env/LD_LIBRARY_PATH ]
then
load_env /etc/openshift/env/LD_LIBRARY_PATH
ld_path=$ld_path:$LD_LIBRARY_PATH
fi

echo -n $ld_path
}

0 comments on commit 3755dfc

Please sign in to comment.