Uploaded image for project: 'Red Hat Fuse'
  1. Red Hat Fuse
  2. ENTESB-3151

Fail to provsion ssh container - invalid zip

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Blocker
    • jboss-fuse-6.2
    • jboss-fuse-6.2
    • Fabric8 v1
    • None
    • % %
    • Hide
      fabric:create  --new-user admin --new-user-password admin --new-user-role admin --wait-for-provisioning --resolver localip
      
      SSH1=172.17.0.5
      
      container-create-ssh --jvm-opts "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5006 -Xms1024M -Xmx2048M -XX:PermSize=128M -XX:MaxPermSize=512M " --host $SSH1 --user fuse  --resolver localip mesh-broker-01
      

      Error in shell:

      JBossFuse:karaf@root> set DEBUG ;  container-create-ssh --jvm-opts "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5006 -Xms1024M -Xmx2048M -XX:PermSize=128M -XX:MaxPermSize=512M " --host $SSH1 --user fuse  --resolver localip mesh-broker-01
      The following containers have failed:
      	mesh-broker-01: fuse@172.17.0.5:22: received exit status 9 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 --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 --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 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
      }
      
      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 $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 mesh-broker-01
      run cd mesh-broker-01
      validate_requirements
      cp /tmp/fabric8-karaf-1.2.0.redhat-114.zip fabric8-karaf-1.2.0.redhat-114.zip
      if [ ! -f fabric8-karaf-1.2.0.redhat-114.zip ] && [ ! -s fabric8-karaf-1.2.0.redhat-114.zip ] ; then maven_download http://192.168.1.134:8181/maven/download/ io.fabric8 fabric8-karaf 1.2.0.redhat-114 zip ; fi 
      if [ ! -f fabric8-karaf-1.2.0.redhat-114.zip ] && [ ! -s fabric8-karaf-1.2.0.redhat-114.zip ] ; then maven_download https://repo.fusesource.com/nexus/content/groups/public/ io.fabric8 fabric8-karaf 1.2.0.redhat-114 zip ; fi 
      if [ ! -f fabric8-karaf-1.2.0.redhat-114.zip ] && [ ! -s fabric8-karaf-1.2.0.redhat-114.zip ] ; then maven_download https://repo.fusesource.com/nexus/content/groups/ea/ io.fabric8 fabric8-karaf 1.2.0.redhat-114 zip ; fi 
      if [ ! -f fabric8-karaf-1.2.0.redhat-114.zip ] && [ ! -s fabric8-karaf-1.2.0.redhat-114.zip ] ; then maven_download https://repo.fusesource.com/nexus/content/repositories/snapshots/ io.fabric8 fabric8-karaf 1.2.0.redhat-114 zip ; fi 
      exit_if_not_exists fabric8-karaf-1.2.0.redhat-114.zip
      run extract_zip fabric8-karaf-1.2.0.redhat-114.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-114
      run cp ../fabric8-karaf-1.2.0.redhat-114.zip system/io/fabric8/fabric8-karaf/1.2.0.redhat-114/
      run chmod +x bin/*
      cat >> etc/system.properties <<'END_OF_FILE'
      global.resolver=localip
      END_OF_FILE
      replace_property_value "karaf.name" "mesh-broker-01" 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:\/data\/software\/redhat\/fuse\/jboss-fuse-6.2.0.redhat-114\/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-mesh-broker-01"
      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=172.17.0.5
      END_OF_FILE
      cat >> etc/system.properties <<'END_OF_FILE'
      zookeeper.url = 192.168.1.134: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:\/\/192.168.1.134:8181\/maven\/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="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5006 -Xms1024M -Xmx2048M -XX:PermSize=128M -XX:MaxPermSize=512M  -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 mesh-broker-01
      Running: cd mesh-broker-01
      Java version is greater than 1.6.
      Running: extract_zip fabric8-karaf-1.2.0.redhat-114.zip
      Archive:  fabric8-karaf-1.2.0.redhat-114.zip
        End-of-central-directory signature not found.  Either this file is not
        a zipfile, or it constitutes one disk of a multi-part archive.  In the
        latter case the central directory and zipfile comment will be found on
        the last disk(s) of this archive.
      unzip:  cannot find zipfile directory in one of fabric8-karaf-1.2.0.redhat-114.zip or
              fabric8-karaf-1.2.0.redhat-114.zip.zip, and cannot find fabric8-karaf-1.2.0.redhat-114.zip.ZIP, period.
      Command Failed:Error running installation script: extract_zip fabric8-karaf-1.2.0.redhat-114.zip
      
      --- error ---
      
      ------
      
      Show
      fabric:create -- new -user admin -- new -user-password admin -- new -user-role admin --wait- for -provisioning --resolver localip SSH1=172.17.0.5 container-create-ssh --jvm-opts "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5006 -Xms1024M -Xmx2048M -XX:PermSize=128M -XX:MaxPermSize=512M " --host $SSH1 --user fuse --resolver localip mesh-broker-01 Error in shell: JBossFuse:karaf@root> set DEBUG ; container-create-ssh --jvm-opts "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5006 -Xms1024M -Xmx2048M -XX:PermSize=128M -XX:MaxPermSize=512M " --host $SSH1 --user fuse --resolver localip mesh-broker-01 The following containers have failed: mesh-broker-01: fuse@172.17.0.5:22: received exit status 9 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 --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 --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 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 } 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 $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 mesh-broker-01 run cd mesh-broker-01 validate_requirements cp /tmp/fabric8-karaf-1.2.0.redhat-114.zip fabric8-karaf-1.2.0.redhat-114.zip if [ ! -f fabric8-karaf-1.2.0.redhat-114.zip ] && [ ! -s fabric8-karaf-1.2.0.redhat-114.zip ] ; then maven_download http: //192.168.1.134:8181/maven/download/ io.fabric8 fabric8-karaf 1.2.0.redhat-114 zip ; fi if [ ! -f fabric8-karaf-1.2.0.redhat-114.zip ] && [ ! -s fabric8-karaf-1.2.0.redhat-114.zip ] ; then maven_download https: //repo.fusesource.com/nexus/content/groups/ public / io.fabric8 fabric8-karaf 1.2.0.redhat-114 zip ; fi if [ ! -f fabric8-karaf-1.2.0.redhat-114.zip ] && [ ! -s fabric8-karaf-1.2.0.redhat-114.zip ] ; then maven_download https: //repo.fusesource.com/nexus/content/groups/ea/ io.fabric8 fabric8-karaf 1.2.0.redhat-114 zip ; fi if [ ! -f fabric8-karaf-1.2.0.redhat-114.zip ] && [ ! -s fabric8-karaf-1.2.0.redhat-114.zip ] ; then maven_download https: //repo.fusesource.com/nexus/content/repositories/snapshots/ io.fabric8 fabric8-karaf 1.2.0.redhat-114 zip ; fi exit_if_not_exists fabric8-karaf-1.2.0.redhat-114.zip run extract_zip fabric8-karaf-1.2.0.redhat-114.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-114 run cp ../fabric8-karaf-1.2.0.redhat-114.zip system/io/fabric8/fabric8-karaf/1.2.0.redhat-114/ run chmod +x bin/* cat >> etc/system.properties << 'END_OF_FILE' global.resolver=localip END_OF_FILE replace_property_value "karaf.name" "mesh-broker-01" 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:\/data\/software\/redhat\/fuse\/jboss-fuse-6.2.0.redhat-114\/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-mesh-broker-01" 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=172.17.0.5 END_OF_FILE cat >> etc/system.properties << 'END_OF_FILE' zookeeper.url = 192.168.1.134: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:\/\/192.168.1.134:8181\/maven\/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= "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5006 -Xms1024M -Xmx2048M -XX:PermSize=128M -XX:MaxPermSize=512M -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 mesh-broker-01 Running: cd mesh-broker-01 Java version is greater than 1.6. Running: extract_zip fabric8-karaf-1.2.0.redhat-114.zip Archive: fabric8-karaf-1.2.0.redhat-114.zip End-of-central-directory signature not found. Either this file is not a zipfile, or it constitutes one disk of a multi-part archive. In the latter case the central directory and zipfile comment will be found on the last disk(s) of this archive. unzip: cannot find zipfile directory in one of fabric8-karaf-1.2.0.redhat-114.zip or fabric8-karaf-1.2.0.redhat-114.zip.zip, and cannot find fabric8-karaf-1.2.0.redhat-114.zip.ZIP, period. Command Failed:Error running installation script: extract_zip fabric8-karaf-1.2.0.redhat-114.zip --- error --- ------

    Description

      Provisioning an ssh container fails reporting error with the zip file.

      $ sha256sum system/io/fabric8/fabric8-karaf/1.2.0.redhat-114/fabric8-karaf-1.2.0.redhat-114.zip
      ab2b397224e350669823151cab1806ab9b7258fd2e8ef7ba01215aba902f2142  system/io/fabric8/fabric8-karaf/1.2.0.redhat-114/fabric8-karaf-1.2.0.redhat-114.zip
      

      Attachments

        1. fabric-core-1.2.0-SNAPSHOT.jar
          390 kB
        2. logs.zip
          400 kB
        3. req.png
          req.png
          104 kB

        Issue Links

          Activity

            People

              janstey@redhat.com Jonathan Anstey
              pantinor@redhat.com Paolo Antinori
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: