-
Bug
-
Resolution: Done
-
Blocker
-
jboss-fuse-6.3
-
None
-
6.3 Sprint 4 (Mar 28 - Apr 29)
container-create-ssh output:
JBossFuse:karaf@root> container-create-ssh --host jawa50.tpb.lab.eng.brq.redhat.com --user fuse --password fuse sshtest
The following containers have failed:
sshtest: fuse@jawa50.tpb.lab.eng.brq.redhat.com:22: received exit status 255 executing
--- command ---
#!/bin/bash
function run { echo "Running: $*" ; $* ; rc=$? ; if [ "${rc}" -ne 0 ]; then echo "Command Failed:Error running installation script: $*" ; exit ${rc} ; fi ; }
function sudo_n {
SUDO_NON_INTERACTIVE=`sudo -h | grep "\-n"`
if [ -z "$SUDO_NON_INTERACTIVE" ]; then
sudo $*
else
sudo -n $*
fi
}
function download {
echo "Downloading: $1";
ret=`curl -C - --retry 10 --write-out %{http_code} --silent --output $2 $1`;
if [ "${ret}" -ne 200 ]; then
echo "Download failed with code: ${ret}";
rm $2;
fi;
}
function maven_download {
echo "Downloading Maven Artifact with groupId: $2 artifactId: $3 and version: $4 from repository: $1";
export REPO=$1
export GROUP_ID=$2
export ARTIFACT_ID=$3
export VERSION=$4
export TYPE=$5
export TARGET_FILE=$ARTIFACT_ID-$VERSION.$TYPE
export GROUP_ID_PATH=`echo $GROUP_ID | sed 's/\./\//g'`
export ARTIFACT_BASE_URL=`echo $REPO$GROUP_ID_PATH/$ARTIFACT_ID/$VERSION/`
if [[ "$VERSION" == *SNAPSHOT* ]]; then
export ARTIFACT_URL=`curl -C - --retry 10 --silent $ARTIFACT_BASE_URL | grep href | grep zip\" | sed 's/^.*<a href="//' | sed 's/".*$//' | tail -1`
else
export ARTIFACT_URL=`echo $REPO$GROUP_ID_PATH/$ARTIFACT_ID/$VERSION/$ARTIFACT_ID-$VERSION.$TYPE`
fi
if [ -z "$ARTIFACT_URL" ]; then
export ARTIFACT_URL=`echo $REPO$GROUP_ID_PATH/$ARTIFACT_ID/$VERSION/$ARTIFACT_ID-$VERSION.$TYPE`
fi
echo "Using URL: $ARTIFACT_URL"
ret=`curl --write-out %{http_code} --silent --output $TARGET_FILE $ARTIFACT_URL`
if [ "${ret}" -ne 200 ]; then
echo "Download failed with code: ${ret}"
rm $TARGET_FILE
fi
}
function update_pkgs() {
if which dpkg &> /dev/null; then
sudo_n apt-get update
elif which rpm &> /dev/null; then
sudo_n yum check-update
fi
}
function install_curl() {
echo "Checking if curl is present."
if which curl &> /dev/null; then
echo "Curl is already installed."
else
echo "Installing curl."
if which dpkg &> /dev/null; then
sudo_n apt-get -y install curl
elif which rpm &> /dev/null; then
sudo_n yum -y install curl
fi
fi
}
function install_unzip() {
echo "Checking if unzip is present."
if which unzip &> /dev/null; then
echo "Unzip is already installed."
else
echo "Installing unzip."
if which dpkg &> /dev/null; then
sudo_n apt-get -y install unzip
elif which rpm &> /dev/null; then
sudo_n yum -y install unzip
fi
fi
}
function install_openjdk_deb() {
sudo_n apt-get -y install openjdk-7-jdk
# Try to set JAVA_HOME in a number of commonly used locations
# Lifting JAVA_HOME detection from jclouds
for CANDIDATE in `ls -d /usr/lib/jvm/java-1.7.0-openjdk-* /usr/lib/jvm/java-7-openjdk-* /usr/lib/jvm/java-7-openjdk 2>&-`; do
if [ -n "$CANDIDATE" -a -x "$CANDIDATE/bin/java" ]; then
export JAVA_HOME=$CANDIDATE
break
fi
done
if [ -f /etc/profile ]; then
sudo_n "echo 'export JAVA_HOME=$JAVA_HOME' >> /etc/profile"
fi
if [ -f /etc/bashrc ]; then
sudo_n "echo 'export JAVA_HOME=$JAVA_HOME' >> /etc/bashrc"
fi
if [ -f ~root/.bashrc ]; then
sudo_n "echo 'export JAVA_HOME=$JAVA_HOME' >> ~root/.bashrc"
fi
if [ -f /etc/skel/.bashrc ]; then
sudo_n "echo 'export JAVA_HOME=$JAVA_HOME' >> /etc/skel/.bashrc"
fi
if [ -f "$DEFAULT_HOME/$NEW_USER" ]; then
sudo_n "echo 'export JAVA_HOME=$JAVA_HOME' >> $DEFAULT_HOME/$NEW_USER"
fi
sudo_n update-alternatives --install /usr/bin/java java $JAVA_HOME/bin/java 17000
sudo_n update-alternatives --set java $JAVA_HOME/bin/java
java -version
}
function install_openjdk_rpm() {
sudo_n yum -y install java-1.7.0-openjdk-devel
# Try to set JAVA_HOME in a number of commonly used locations
# Lifting JAVA_HOME detection from jclouds
for CANDIDATE in `ls -d /usr/lib/jvm/java-1.7.0-openjdk-* /usr/lib/jvm/java-7-openjdk-* /usr/lib/jvm/java-7-openjdk 2>&-`; do
if [ -n "$CANDIDATE" -a -x "$CANDIDATE/bin/java" ]; then
export JAVA_HOME=$CANDIDATE
break
fi
done
if [ -f /etc/profile ]; then
sudo_n "echo 'export JAVA_HOME=$JAVA_HOME' >> /etc/profile"
fi
if [ -f /etc/bashrc ]; then
sudo_n "echo 'export JAVA_HOME=$JAVA_HOME' >> /etc/bashrc"
fi
if [ -f ~root/.bashrc ]; then
sudo_n "echo 'export JAVA_HOME=$JAVA_HOME' >> ~root/.bashrc"
fi
if [ -f /etc/skel/.bashrc ]; then
sudo_n "echo 'export JAVA_HOME=$JAVA_HOME' >> /etc/skel/.bashrc"
fi
if [ -f "$DEFAULT_HOME/$NEW_USER" ]; then
sudo_n "echo 'export JAVA_HOME=$JAVA_HOME' >> $DEFAULT_HOME/$NEW_USER"
fi
sudo_n alternatives --install /usr/bin/java java $JAVA_HOME/bin/java 17000
sudo_n alternatives --set java $JAVA_HOME/bin/java
java -version
}
function install_openjdk() {
echo "Checking if java is present."
ARCH=`uname -m`
JAVA_VERSION=`java -version 2>&1`
if [[ $JAVA_VERSION == *1.7* ]]; then
echo "Java is already installed."
else
echo "Installing java."
if which dpkg &> /dev/null; then
install_openjdk_deb
elif which rpm &> /dev/null; then
install_openjdk_rpm
fi
fi
}
function validate_requirements() {
if ! which curl &> /dev/null; then
echo "Command Failed:Curl is not installed.";
fi
if ! which java &> /dev/null; then
echo "Command Failed:Java is not installed.";
exit -1;
else
check_java_version
fi
}
function check_java_version() {
JAVA_VERSION=`java -version 2>&1 | grep "[java|openjdk] version" | awk '{print $3}' | tr -d \" | awk '{split($0, array, ".")} END{print array[2]}'`
if [ $JAVA_VERSION -ge 6 ]; then
echo "Java version is greater than 1.6."
else
echo "Command Failed:Unsupported java version: 1.$JAVA_VERSION.x found."
exit -1;
fi
}
function exit_if_not_exists() {
if [ ! -f $1 ]; then
echo "Command Failed:Could not find file $1";
exit -1;
fi
local zipFile="$1"
local size="$(du $zipFile | awk '{ print $1}')"
if [ $size -lt 100 ]; then
echo "Command Failed: Zip archive is empty. Check $1";
exit -1;
fi
}
function copy_node_metadata() {
echo "Copying metadata for container: $1";
TARGET_PATH="./fabric/import/fabric/registry/containers/config/$1/"
mkdir -p $TARGET_PATH
ENCODED_METADATA=$2
echo $ENCODED_METADATA > ./fabric/import/fabric/registry/containers/config/$1/metadata.cfg
}
function karaf_check() {
KARAF_HOME=$1
INSTANCES_FILE=$KARAF_HOME/instances/instance.properties
for i in {1..5};
do
if [ ! -f $INSTANCES_FILE ]; then
sleep 1
else
break
fi
done
if [ -f $INSTANCES_FILE ]; then
for j in {1..5};
do
PID=`cat $INSTANCES_FILE | grep "item.0.pid" | awk -F "=" '{print $2}'`
if [ "$PID" = "" ]; then
sleep 1
else
break
fi
done
if ps -p $PID > /dev/null; then
echo "Fabric is started successfully"
else
echo "Command Failed: Karaf process ($PID) is not running"
fi
else
echo "Command Failed:Could not find Karaf instance.properties"
fi
}
function replace_in_file {
sed "s/$1/$2/g" $3 > $3.tmp
rm $3
mv $3.tmp $3
}
function replace_property_value {
echo "Setting value $2 for key $1 in $3"
sed "s/$1[ \t]*=.*/$1 = $2/g" $3 > $3.tmp
rm $3
mv $3.tmp $3
}
function configure_hostnames() {
CLOUD_PROVIDER=$1
case $CLOUD_PROVIDER in
openstack-nova | ec2 | aws-ec2 )
echo "Resolving public hostname for ec2 node"
export PUBLIC_HOSTNAME=`curl http://169.254.169.254/latest/meta-data/public-hostname | sed 's/ /_/g'`
echo PUBLIC_HOSTNAME
;;
cloudservers | cloudservers-uk | cloudservers-us )
echo "Resovling public hostname for rackspace node"
PRIVATE_IP=`/sbin/ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}'`
export PUBLIC_HOSTNAME=`echo $PRIVATE_IP | tr . -`.static.cloud-ips.com
;;
esac
if [ ! -z ${PUBLIC_HOSTNAME} ]; then
LOOKUP_ADDRESS=`nslookup $PUBLIC_HOSTNAME > /dev/null | grep Address | tail -n 1 | cut -d " " -f 3 | sed 's/ /_/g'`
echo "Found hostname: $PUBLIC_HOSTNAME matching with address: $LOOKUP_ADDRESS"
echo "publichostname=$PUBLIC_HOSTNAME" >> etc/system.properties
cat etc/system.properties | grep -v 'local.resolver=' | grep -v 'global.resolver=' > etc/system.properties.tmp
mv etc/system.properties.tmp etc/system.properties
echo "local.resolver=publichostname" >> etc/system.properties
echo "global.resolver=publichostname" >> etc/system.properties
echo $PUBLIC_HOSTNAME > hostname
sudo_n cp hostname /etc/
export JAVA_OPTS="-Djava.rmi.server.hostname=$PUBLIC_HOSTNAME $JAVA_OPTS"
echo "RESOLVER OVERRIDE:publichostname"
fi
}
function find_free_port() {
START_PORT=$1
END_PORT=$2
for port in `eval echo {$START_PORT..$END_PORT}`;do
if [[ $OSTYPE == darwin* ]]; then
# macosx has a different syntax for netstat
netstat -atp tcp | tr -s ' ' ' '| cut -d ' ' -f 4 | grep ":$port" > /dev/null 2>&1 && continue || echo $port && break;
else
netstat -utan | tr -s ' ' ' '| cut -d ' ' -f 4 | grep ":$port" > /dev/null 2>&1 && continue || echo $port && break;
fi
done
}
function wait_for_port() {
PORT=$1
for i in {1..5};
do
if [[ $OSTYPE == darwin* ]]; then
# macosx has a different syntax for netstat
netstat -an -ptcp | grep LISTEN | tr -s ' ' ' '| cut -d ' ' -f 4 | grep ":$PORT" > /dev/null 2>&1 && break;
else
netstat -lnt | tr -s ' ' ' '| cut -d ' ' -f 4 | grep ":$PORT" > /dev/null 2>&1 && break;
fi
sleep 5;
done
return 0
}
function extract_zip {
if ! which unzip &> /dev/null; then
jar xf $1
else
unzip -o $1
fi
}
function generate_ssh_keys {
if [ ! -f ~/.ssh/id_rsa ]; then
mkdir -p ~/.ssh
ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa
fi
}
run mkdir -p ~/containers/
run cd ~/containers/
run mkdir -p sshtest
run cd sshtest
validate_requirements
cp /tmp/fabric8-karaf-1.2.0.redhat-630015.zip fabric8-karaf-1.2.0.redhat-630015.zip
if ! jar xf fabric8-karaf-1.2.0.redhat-630015.zip &> /dev/null; then rm fabric8-karaf-1.2.0.redhat-630015.zip ; fi
if [ ! -f fabric8-karaf-1.2.0.redhat-630015.zip ] && [ ! -s fabric8-karaf-1.2.0.redhat-630015.zip ] ; then maven_download http://10.40.3.35:8181/maven/download/@id=root_download/ io.fabric8 fabric8-karaf 1.2.0.redhat-630015 zip ; fi
if [ ! -f fabric8-karaf-1.2.0.redhat-630015.zip ] && [ ! -s fabric8-karaf-1.2.0.redhat-630015.zip ] ; then maven_download https://repo.fusesource.com/nexus/content/groups/public/ io.fabric8 fabric8-karaf 1.2.0.redhat-630015 zip ; fi
if [ ! -f fabric8-karaf-1.2.0.redhat-630015.zip ] && [ ! -s fabric8-karaf-1.2.0.redhat-630015.zip ] ; then maven_download https://repo.fusesource.com/nexus/content/groups/ea/ io.fabric8 fabric8-karaf 1.2.0.redhat-630015 zip ; fi
if [ ! -f fabric8-karaf-1.2.0.redhat-630015.zip ] && [ ! -s fabric8-karaf-1.2.0.redhat-630015.zip ] ; then maven_download https://repo.fusesource.com/nexus/content/repositories/snapshots/ io.fabric8 fabric8-karaf 1.2.0.redhat-630015 zip ; fi
exit_if_not_exists fabric8-karaf-1.2.0.redhat-630015.zip
run extract_zip fabric8-karaf-1.2.0.redhat-630015.zip
run cd `ls -l | grep fabric8-karaf | grep ^d | awk '{ print $NF }' | sort -n | head -1`
run mkdir -p system/io/fabric8/fabric8-karaf/1.2.0.redhat-630015
run cp ../fabric8-karaf-1.2.0.redhat-630015.zip system/io/fabric8/fabric8-karaf/1.2.0.redhat-630015/
run rm ../fabric8-karaf-1.2.0.redhat-630015.zip
run chmod +x bin/*
cat >> etc/system.properties <<'END_OF_FILE'
global.resolver=localhostname
END_OF_FILE
replace_property_value "karaf.name" "sshtest" etc/system.properties
replace_property_value "gitRemotePollInterval" "60000" etc/io.fabric8.datastore.cfg
replace_property_value "component.name" "io.fabric8.datastore" etc/io.fabric8.datastore.cfg
replace_property_value "importDir" "fabric" etc/io.fabric8.datastore.cfg
replace_property_value "felix.fileinstall.filename" "file:\/home\/avano\/work\/jboss-fuse-6.3.0.redhat-015\/etc\/io.fabric8.datastore.cfg" etc/io.fabric8.datastore.cfg
replace_property_value "service.pid" "io.fabric8.datastore" etc/io.fabric8.datastore.cfg
BIND_ADDRESS=0.0.0.0
SSH_PORT="`find_free_port 8101 65535`"
RMI_REGISTRY_PORT="`find_free_port 1099 65535`"
RMI_SERVER_PORT="`find_free_port 44444 65535`"
JMX_SERVER_URL="service:jmx:rmi:\/\/${BIND_ADDRESS}:${RMI_SERVER_PORT}\/jndi\/rmi:\/\/${BIND_ADDRESS}:${RMI_REGISTRY_PORT}\/karaf-sshtest"
HTTP_PORT="`find_free_port 8181 65535`"
replace_property_value "sshPort" "$SSH_PORT" etc/org.apache.karaf.shell.cfg
replace_property_value "sshHost" "$BIND_ADDRESS" etc/org.apache.karaf.shell.cfg
replace_property_value "rmiRegistryPort" "$RMI_REGISTRY_PORT" etc/org.apache.karaf.management.cfg
replace_property_value "rmiServerPort" "$RMI_SERVER_PORT" etc/org.apache.karaf.management.cfg
replace_property_value "rmiServerHost" "$BIND_ADDRESS" etc/org.apache.karaf.management.cfg
replace_property_value "rmiRegistryHost" "$BIND_ADDRESS" etc/org.apache.karaf.management.cfg
replace_property_value "org.osgi.service.http.port" "$HTTP_PORT" etc/org.ops4j.pax.web.cfg
replace_in_file "8181" "$HTTP_PORT" etc/jetty.xml
cat >> etc/system.properties <<'END_OF_FILE'
minimum.port=0
END_OF_FILE
cat >> etc/system.properties <<'END_OF_FILE'
maximum.port=65535
END_OF_FILE
cat >> etc/system.properties <<'END_OF_FILE'
END_OF_FILE
cat >> etc/system.properties <<'END_OF_FILE'
preferred.network.address=10.40.128.31
END_OF_FILE
cat >> etc/system.properties <<'END_OF_FILE'
zookeeper.url = 10.40.3.35:2181
END_OF_FILE
cat >> etc/system.properties <<'END_OF_FILE'
zookeeper.password = ZKENC=YWRtaW4=
END_OF_FILE
cat >> etc/system.properties <<'END_OF_FILE'
zookeeper.password.encode = true
END_OF_FILE
cat >> etc/system.properties <<'END_OF_FILE'
agent.auto.start=true
END_OF_FILE
sed 's/featuresBoot=/&fabric-agent,fabric-git,/' etc/org.apache.karaf.features.cfg > etc/org.apache.karaf.features.cfg.tmp
mv etc/org.apache.karaf.features.cfg.tmp etc/org.apache.karaf.features.cfg
sed 's/repositories=/&http:\/\/10.40.3.35:8181\/maven\/download\/@id=root_download\/,/' etc/org.ops4j.pax.url.mvn.cfg > etc/org.ops4j.pax.url.mvn.cfg.tmp
mv etc/org.ops4j.pax.url.mvn.cfg.tmp etc/org.ops4j.pax.url.mvn.cfg
generate_ssh_keys
configure_hostnames none
export JAVA_OPTS=" -XX:+UnlockDiagnosticVMOptions -XX:+UnsyncloadClass"
nohup bin/start &
karaf_check `pwd`
wait_for_port $SSH_PORT
wait_for_port $RMI_REGISTRY_PORT
--- output ---
Running: mkdir -p /home/fuse/containers/
Running: cd /home/fuse/containers/
Running: mkdir -p sshtest
Running: cd sshtest
Java version is greater than 1.6.
cp: cannot stat `/tmp/fabric8-karaf-1.2.0.redhat-630015.zip': No such file or directory
rm: cannot remove `fabric8-karaf-1.2.0.redhat-630015.zip': No such file or directory
Downloading Maven Artifact with groupId: io.fabric8 artifactId: fabric8-karaf and version: 1.2.0.redhat-630015 from repository: http://10.40.3.35:8181/maven/download/@id=root_download/
Using URL: http://10.40.3.35:8181/maven/download/@id=root_download/io/fabric8/fabric8-karaf/1.2.0.redhat-630015/fabric8-karaf-1.2.0.redhat-630015.zip
Download failed with code: 404
rm: cannot remove `fabric8-karaf-1.2.0.redhat-630015.zip': No such file or directory
Downloading Maven Artifact with groupId: io.fabric8 artifactId: fabric8-karaf and version: 1.2.0.redhat-630015 from repository: https://repo.fusesource.com/nexus/content/groups/public/
Using URL: https://repo.fusesource.com/nexus/content/groups/public/io/fabric8/fabric8-karaf/1.2.0.redhat-630015/fabric8-karaf-1.2.0.redhat-630015.zip
Download failed with code: 404
Downloading Maven Artifact with groupId: io.fabric8 artifactId: fabric8-karaf and version: 1.2.0.redhat-630015 from repository: https://repo.fusesource.com/nexus/content/groups/ea/
Using URL: https://repo.fusesource.com/nexus/content/groups/ea/io/fabric8/fabric8-karaf/1.2.0.redhat-630015/fabric8-karaf-1.2.0.redhat-630015.zip
Download failed with code: 301
Downloading Maven Artifact with groupId: io.fabric8 artifactId: fabric8-karaf and version: 1.2.0.redhat-630015 from repository: https://repo.fusesource.com/nexus/content/repositories/snapshots/
Using URL: https://repo.fusesource.com/nexus/content/repositories/snapshots/io/fabric8/fabric8-karaf/1.2.0.redhat-630015/fabric8-karaf-1.2.0.redhat-630015.zip
Download failed with code: 301
Command Failed:Could not find file fabric8-karaf-1.2.0.redhat-630015.zip
--- error ---
------
It seems that it wants to download following artifact:
2016-02-23 14:52:37,924 | INFO | dProxyServlet #1 | MavenProxyServletSupport | 184 - io.fabric8.fabric-maven-proxy - 1.2.0.redhat-630015 | Received request for maven artifact : @id=root_download/io/fabric8/fabric8-karaf/1.2.0.redhat-630015/fabric8-karaf-1.2.0.redhat-630015.zip
note that the artifact is logged together with the repository id.
in the fabric:info command, there are the repository @ids too:
JBossFuse:karaf@root> fabric:info Fabric Release: 1.2.0.redhat-630015 Web Console: http://10.40.3.35:8181/hawtio Rest API: Git URL: http://10.40.3.35:8181/git/fabric/ Jolokia URL: http://10.40.3.35:8181/jolokia ZooKeeper URI: 10.40.3.35:2181 Maven Download URI: http://10.40.3.35:8181/maven/download/@id=root_download/ Maven Upload URI: http://10.40.3.35:8181/maven/upload/@id=root_upload/
The fabric8-karaf-1.2.0.redhat-630015.zip is correctly present in root container system/io/fabric8/fabric8-karaf/1.2.0.redhat-630015/fabric8-karaf-1.2.0.redhat-630015.zip
- causes
-
ENTESB-5038 Child container on root cannot resolve artifact from fabric maven proxy.
-
- Closed
-
- is blocked by
-
ENTESB-5179 Maven proxy behavior broken
-
- Closed
-
-
ENTESB-5174 WARN from jetty happens very regular
-
- Closed
-
- is related to
-
ENTESB-5110 Can't create containers from java using ssh after fabric:create
-
- Closed
-
-
ENTESB-5254 Container-create-ssh does not respect --new-user and --new-user-password
-
- Closed
-