diff options
Diffstat (limited to 'repo/repo_func.sh')
-rwxr-xr-x | repo/repo_func.sh | 201 |
1 files changed, 68 insertions, 133 deletions
diff --git a/repo/repo_func.sh b/repo/repo_func.sh index 72c653e3..4a9e469e 100755 --- a/repo/repo_func.sh +++ b/repo/repo_func.sh @@ -183,106 +183,43 @@ function make_repo() sudo docker rmi -f ${image_id} } -function _try_fetch_dependency() +function make_pip_repo() { - local dir_name='' - if [ -f $1 ];then - case $1 in - *.tar.bz2) - tar xjf $1 - dir_name="$(basename $1 .tar.bz2)" - ;; - *.tar.gz) - tar xzf $1 - dir_name="$(basename $1 .tar.gz)" - ;; - *.bz2) - bunzip2 $1 - dir_name="$(basename $1 .bz2)" - ;; - *.rar) - unrar e $1 - dir_name="$(basename $1 .rar)" - ;; - *.gz) - gunzip $1 - dir_name="$(basename $1 .gz)" - ;; - *.tar) - tar xf $1 - dir_name="$(basename $1 .tar)" - ;; - *.tbz2) - tar xjf $1 - dir_name="$(basename $1 .tbz2)" - ;; - *.tgz) - tar xzf $1 - dir_name="$(basename $1 .tgz)" - ;; - *.zip) - gunzip $1 - dir_name="$(basename $1 .zip)" - ;; - *) - echo "'$1' cannot be extract()" - return - ;; - esac - else - echo "'$1' is not a valid file" - return - fi + local work_repo=$COMPASS_PATH/work/repo + local pip_path=$work_repo/pip + local pip_tmp=$work_repo/pip_tmp + local pip_openstack=$work_repo/pip-openstack - if [ ! -f ${dir_name}/requirements.txt ]; then - echo "${dir_name}/requirements.txt does not exist" - return + if [[ -d $pip_tmp ]]; then + rm -rf $pip_tmp fi - pip install --download=$2 -r ${dir_name}/requirements.txt - - rm -rf $dir_name -} - -function try_fetch_dependency() -{ - cd $3 - _try_fetch_dependency $1/$2 $1 - cd - -} - -function make_pip_repo() -{ - source $COMPASS_PATH/repo/repo.conf - local pip_path=$COMPASS_PATH/work/repo/pip - local pip_tmp_path=$COMPASS_PATH/work/repo/pip_tmp - - for i in $SPECIAL_PIP_PACKAGE; do - curl --connect-timeout 10 -o $pip_path/`basename $i` $i - done + if [[ -d $pip_path ]]; then + rm -rf $pip_path + fi - mkdir -p $pip_tmp_path + if [[ -d $pip_openstack ]]; then + rm -rf $pip_openstack + fi - for i in $PIP_PACKAGE; do - curl --connect-timeout 10 -o $pip_path/$(basename $i) $i - try_fetch_dependency $pip_path $(basename $i) $pip_tmp_path - done + mkdir -p $pip_path $pip_tmp $pip_openstack - rm -rf $pip_tmp_path + # download python packages for compass-core + pip install --no-cache-dir -d $pip_path -r $REPO_PATH/pip/core-requirement.txt + pip install --no-cache-dir -d $pip_path pip --no-use-wheel _make_pip - cd $COMPASS_PATH/work/repo - - rm -rf openstack_pip - - rm -rf pip-openstack; mkdir -p pip-openstack + tar -zxvf $pip_tmp/pip-openstack.tar.gz -C $work_repo - tar -zxvf openstack_pip.tar.gz; cp -f openstack_pip/* pip-openstack/ + # download extra python packages for deployment + pip install --no-cache-dir -d $pip_openstack -r $REPO_PATH/pip/extra-requirement-wheel.txt + pip install --no-cache-dir -d $pip_openstack -r $REPO_PATH/pip/extra-requirement-tar.txt --no-use-wheel - cp -f pip/* pip-openstack/ - - tar -zcvf pip-openstack.tar.gz ./pip-openstack; cd - + cd $work_repo + tar -zcvf pip.tar.gz pip/ + tar -zcvf pip-openstack.tar.gz pip-openstack/ + cd - } @@ -336,42 +273,52 @@ EOF function _make_pip() { - if [[ ! -f ${COMPASS_PATH}/repo/openstack/pip/Dockerfile ]]; then + local pip_tmp=${COMPASS_PATH}/work/repo/pip_tmp + + if [[ ! -f ${COMPASS_PATH}/repo/pip/Dockerfile ]]; then echo "No Dockerfile for making pip repo!" return fi - if [[ -d ${COMPASS_PATH}/repo/openstack_pip ]]; then - rm -rf ${COMPASS_PATH}/work/repo/openstack_pip - fi - - mkdir -p ${COMPASS_PATH}/work/repo/openstack_pip - - cp -f ${COMPASS_PATH}/repo/openstack/pip/Dockerfile ${COMPASS_PATH}/work/repo/openstack_pip/ - cp -f ${COMPASS_PATH}/repo/openstack/pip/code_url.conf ${COMPASS_PATH}/work/repo/openstack_pip/ + cp -f ${COMPASS_PATH}/repo/pip/Dockerfile $pip_tmp + cp -f ${COMPASS_PATH}/repo/pip/code_url.conf $pip_tmp -cat <<EOF >${COMPASS_PATH}/work/repo/openstack_pip/cp_pip.sh +cat <<EOF >$pip_tmp/cp_pip.sh #!/bin/bash set -ex cp /*.tar.gz /env -f EOF -cat <<EOF >${COMPASS_PATH}/work/repo/openstack_pip/make_pip.sh +cat <<EOF >$pip_tmp/make_pip.sh #!/bin/bash set -ex source code_url.conf for i in \$GIT_URL; do mkdir -p /home/tmp git clone \$i -b \$BRANCH /home/tmp - pip install -r /home/tmp/requirements.txt -d openstack_pip/ + pip install -r /home/tmp/requirements.txt -d pip-openstack/ + rm -rf /home/tmp +done +EOF + +cat <<EOF >$pip_tmp/make_pip_wheel.sh +#!/bin/bash +set -ex +pip install pip --upgrade +source code_url.conf +for i in \$PIP_GIT_URL; do + mkdir -p /home/tmp + repo=\${i##*/} + git clone \$i -b \$BRANCH /home/tmp/\${repo%.*} + pip wheel --wheel-dir /pip-openstack/ /home/tmp/\${repo%.*} rm -rf /home/tmp done EOF pip_docker_tag="pip/env" - sudo docker build --no-cache=true -t ${pip_docker_tag} -f ${COMPASS_PATH}/work/repo/openstack_pip/Dockerfile ${COMPASS_PATH}/work/repo/openstack_pip - sudo docker run -t -v ${COMPASS_PATH}/work/repo:/env ${pip_docker_tag} + sudo docker build --no-cache=true -t ${pip_docker_tag} -f $pip_tmp/Dockerfile $pip_tmp + sudo docker run -t -v $pip_tmp:/env ${pip_docker_tag} image_id=$(sudo docker images|grep ${pip_docker_tag}|awk '{print $3}') @@ -417,37 +364,31 @@ function make_feature_repo() mkdir -p $COMPASS_PATH/work/repo/packages mkdir -p $COMPASS_PATH/work/repo/temp - echo "$OPNFV_VERSION" + if [[ -d $COMPASS_PATH/work/repo/temp/make_pkg ]]; then + rm -rf $COMPASS_PATH/work/repo/temp/make_pkg + fi - for i in $OPNFV_VERSION; do - mkdir -p $COMPASS_PATH/work/repo/packages/$i - mkdir -p $COMPASS_PATH/work/repo/temp/$i - if [[ -d $COMPASS_PATH/work/repo/temp/make_pkg ]]; then - rm -rf $COMPASS_PATH/work/repo/temp/make_pkg - fi - mkdir -p $COMPASS_PATH/work/repo/temp/make_pkg + mkdir -p $COMPASS_PATH/work/repo/temp/make_pkg - if [[ ! -d $COMPASS_PATH/repo/features/$i ]]; then - echo "No $i in compass feature directory." - return - fi + cp -rf $COMPASS_PATH/repo/features/scripts/* $COMPASS_PATH/work/repo/temp/make_pkg - cp -rf $COMPASS_PATH/repo/features/$i/* $COMPASS_PATH/work/repo/temp/make_pkg + sed -i "s#REPLACE_ODL_PKG#$ODL_PKG#g" $COMPASS_PATH/work/repo/temp/make_pkg/download_odl.sh + sed -i "s#REPLACE_JAVA_PKG#$JAVA_PKG#g" $COMPASS_PATH/work/repo/temp/make_pkg/download_java.sh - feature_dockerfile=Dockerfile - feature_docker_tag=trusty/feature + feature_dockerfile=Dockerfile + feature_docker_tag=trusty/feature - if [[ ! -f $COMPASS_PATH/repo/features/$feature_dockerfile ]]; then - echo "No Dockerfile in compass feature directory." - return - fi + if [[ ! -f $COMPASS_PATH/repo/features/$feature_dockerfile ]]; then + echo "No Dockerfile in compass feature directory." + return + fi - cp -f $COMPASS_PATH/repo/features/$feature_dockerfile $COMPASS_PATH/work/repo/temp/ + cp -f $COMPASS_PATH/repo/features/$feature_dockerfile $COMPASS_PATH/work/repo/temp/ cat <<EOF >${COMPASS_PATH}/work/repo/temp/cp_pkg.sh #!/bin/bash set -ex -cp /*.tar.gz /feature -f +cp /pkg/* /feature -rf EOF cat <<EOF >${COMPASS_PATH}/work/repo/temp/feature_run.sh @@ -458,20 +399,14 @@ for z in \$_script; do . /run_script/\$z done EOF - sudo docker build --no-cache=true -t ${feature_docker_tag} -f ${COMPASS_PATH}/work/repo/temp/${feature_dockerfile} ${COMPASS_PATH}/work/repo/temp - sudo docker run -t -v ${COMPASS_PATH}/work/repo/packages:/feature ${feature_docker_tag} - - image_id=$(sudo docker images|grep ${feature_docker_tag}|awk '{print $3}') + sudo docker build --no-cache=true -t ${feature_docker_tag} -f ${COMPASS_PATH}/work/repo/temp/${feature_dockerfile} ${COMPASS_PATH}/work/repo/temp + sudo docker run -t -v ${COMPASS_PATH}/work/repo/packages:/feature ${feature_docker_tag} - sudo docker rmi -f ${image_id} - - mv ${COMPASS_PATH}/work/repo/packages/*.tar.gz $COMPASS_PATH/work/repo/packages/$i + image_id=$(sudo docker images|grep ${feature_docker_tag}|awk '{print $3}') - done + sudo docker rmi -f ${image_id} cd ${COMPASS_PATH}/work/repo/ tar -zcvf ${COMPASS_PATH}/work/repo/packages.tar.gz packages/ cd - } - - |