#!/bin/bash

BASE=$(grep -E 'BASE' ./ai.config|cut -d'=' -f2)
#ai平台版本号
VERSION=`cat $BASE/ai.config| grep VERSION  | awk -F"=" '{print $2}'`

#线上镜像仓库地址
REGISTRY_URL=$(grep -E 'REGISTRY_URL' $BASE/ai.config|cut -d'=' -f2) 
REGISTRY_DOMAIN=${REGISTRY_URL#*//}

#本地镜像仓库地址和密码
HARBOR_IP=$(grep -r 'HARBOR_DOMAIN' $BASE/ai.config |cut -d'=' -f2|awk '{print $1}')
HARBOR_PORT=$(grep -r 'HARBOR_NODE_PORT' $BASE/ai.config |cut -d'=' -f2|awk '{print $1}')
HARBOR_ADMIN_PASSWORD=$(grep -r 'HARBOR_ADMIN_PASSWORD' $BASE/ai.config |cut -d'=' -f2|awk '{print $1}')
REGISTRY_LOCAL="$HARBOR_IP:$HARBOR_PORT"

#从线上镜像仓库拉取ai-deployer镜像
#PROJECT_ID=$(curl -s -X GET "$REGISTRY_URL/api/projects?name=ai-deploy" -H "accept: application/json"|grep "project_id"|awk 'NR<2{print $2}'|cut -d',' -f1)
#REPOS=$(curl -s -X GET --header 'Accept: application/json' "$REGISTRY_URL/api/repositories?project_id=$PROJECT_ID"|grep "name"|awk -F '"' '{print $4}')
#登录本地镜像仓库
docker login $REGISTRY_LOCAL -u admin -p $HARBOR_ADMIN_PASSWORD

#拉取线上镜像仓库ai-deployer项目下的镜像
#for repo in $REPOS
#do
#  TAGS=$(curl -s -X GET --header 'Accept: application/json' "$REGISTRY_URL/api/repositories/$repo/tags"|grep -A 4 'digest'|grep \"name\"|awk -F '"' '{print $4}'|sort -r)
#  image=$(echo $repo|awk -F "/" '{print $2}')
#    for tag in $TAGS
#    do
#        docker pull $REGISTRY_DOMAIN/$repo:$tag
#        docker tag $REGISTRY_DOMAIN/$repo:$tag $REGISTRY_LOCAL/$repo:$tag
#        docker push $REGISTRY_LOCAL/$repo:$tag
#        echo "$REGISTRY_LOCAL/$repo:$tag flag=0" >> images-tag
#      # docker save $REGISTRY_LOCAL/$repo:$tag > /opt/docker/$image-$tag.tar.gz
#    done
#    echo "======================================="
#done
ARCH=$(grep -v '^###' $BASE/ai.config  | grep ARCH |cut -d"=" -f2)
if [[ "$ARCH" == aarch64 ]]; then
  images=$(cat $BASE/npu-images-list)
  for image in $images
  do
    docker pull $REGISTRY_DOMAIN/$image
    docker tag $REGISTRY_DOMAIN/$image $REGISTRY_LOCAL/$image
    echo "$REGISTRY_LOCAL/$image flag=0" >> images-tag
    echo "$REGISTRY_LOCAL/$image flag=0"
  done
else
  images=$(cat $BASE/images-list)
  for image in $images
  do
    docker pull $REGISTRY_DOMAIN/$image
    docker tag $REGISTRY_DOMAIN/$image $REGISTRY_LOCAL/$image
    echo "$REGISTRY_LOCAL/$image flag=0" >> images-tag
  done
  #AI平台应用镜像
  docker pull  $REGISTRY_DOMAIN/ai/ai-user:$VERSION 
  docker tag $REGISTRY_DOMAIN/ai/ai-user:$VERSION $REGISTRY_LOCAL/ai/ai-user:$VERSION
  echo "$REGISTRY_LOCAL/ai/ai-user:$VERSION flag=0" >> images-tag

  docker pull  $REGISTRY_DOMAIN/ai/ai-mgr-web:$VERSION
  docker tag $REGISTRY_DOMAIN/ai/ai-mgr-web:$VERSION $REGISTRY_LOCAL/ai/ai-mgr-web:$VERSION
  echo "$REGISTRY_LOCAL/ai/ai-mgr-web:$VERSION flag=0" >> images-tag

  docker pull  $REGISTRY_DOMAIN/ai/ai-mgr:$VERSION
  docker tag $REGISTRY_DOMAIN/ai/ai-mgr:$VERSION $REGISTRY_LOCAL/ai/ai-mgr:$VERSION
  echo "$REGISTRY_LOCAL/ai/ai-mgr:$VERSION flag=0" >> images-tag

  docker pull  $REGISTRY_DOMAIN/ai/ai-user-web:$VERSION
  docker tag $REGISTRY_DOMAIN/ai/ai-user-web:$VERSION $REGISTRY_LOCAL/ai/ai-user-web:$VERSION
  echo "$REGISTRY_LOCAL/ai/ai-user-web:$VERSION flag=0" >> images-tag

  #docker pull $REGISTRY_DOMAIN/ai/ai-kop:$VERSION
  #docker tag $REGISTRY_DOMAIN/ai/ai-kop:$VERSION $REGISTRY_LOCAL/ai/ai-kop:$VERSION
  #echo "$REGISTRY_LOCAL/ai/ai-kop:$VERSION flag=0" >> images-tag

  #docker pull $REGISTRY_DOMAIN/ai/ai-kop-web:$VERSION
  #docker tag $REGISTRY_DOMAIN/ai/ai-kop-web:$VERSION $REGISTRY_LOCAL/ai/ai-kop-web:$VERSION
  #echo "$REGISTRY_LOCAL/ai/ai-kop-web:$VERSION flag=0" >> images-tag

  docker pull  $REGISTRY_DOMAIN/ai/page-render:v1
  docker tag $REGISTRY_DOMAIN/ai/page-render:v1 $REGISTRY_LOCAL/ai/page-render:v1
  echo "$REGISTRY_LOCAL/ai/page-render:v1 flag=0" >> images-tag
fi
#ai.config配置文件中是否有定义DCU—TYPE，如果有则拉取DCU镜像
HAS_DCU_TYPE=$(grep -v "^#" ai.config | grep "DCU_TYPE" | awk -F "=" '{print $2}')
if [ "$HAS_DCU_TYPE" != "" ]; then
  #遍历dcu-images-list文件定义的镜像，依次拉取
  images_list=$(cat dcu-images-list)
  for image in $images_list; do
    docker pull $REGISTRY_DOMAIN/$image
    docker tag $REGISTRY_DOMAIN/$image $REGISTRY_LOCAL/$image
    docker push $REGISTRY_LOCAL/$image
  done
fi

echo "#########已拉取镜像至本地############"
#杀死后台进程
ps -ef | grep "get-images" | grep -v grep | awk '{print $2}' | xargs kill -s 9
