Bash程序  |  59行  |  1.22 KB

#!/bin/bash
FROM_HOST=cautotest
TO_HOST=cautotest-cq
POOL=pool:cq

function quiet() {
  $@ > /dev/null
}

function silent() {
  $@ > /dev/null 2>&1
}

function host_labels() {
  ./cli/atest host list --web=$FROM_HOST --parse $1 | awk -F '|' '{ print $5 }' | sed 's/Labels=//' | sed 's/, /,/g'
}

function host_platform() {
  ./cli/atest host list --web=$FROM_HOST $1 | sed 1d | awk '{ print $4; }'
}

function lock_host() {
  ./cli/atest host mod --web=$FROM_HOST -l $1
}

function create_labels() {
  ./cli/atest label create --web=$TO_HOST $1
}

function create_platform() {
  ./cli/atest label create -t --web=$TO_HOST $1
}

function create_host() {
  ./cli/atest host create --web=$TO_HOST -b $2 $1
}

function remove_host() {
  ./cli/atest host delete --web=$FROM_HOST $1
}

HOSTS_TO_MOVE=$(./cli/atest host list --web=$FROM_HOST -b $POOL | sed 1d | awk '{ print $1 }')

for host in $HOSTS_TO_MOVE
do
  # if ! silent lock_host $host; then echo $host already handled; continue; fi
  LABELS=$(host_labels $host)
  PLATFORM=$(host_platform $host)
  silent create_labels $LABELS
  silent create_platform $PLATFORM
  if create_host $host $LABELS
  then
    silent remove_host $host
    echo $host migrated
  else
    echo $host failed
  fi
done