1
0
mirror of https://github.com/SunnyQjm/NDNDeployment.git synced 2026-06-15 14:04:53 +08:00
Files
SunnyQjm 39cab5fbff update
2019-03-28 18:43:44 +08:00

91 lines
2.3 KiB
Bash
Executable File

#!/bin/bash
# 当前节点的名字
nodeName=$1
##########################################
### 确保一个文件夹存在,不存在则创建
### @param dir
##########################################
function ensureDir() {
dir=$1
if [[ ! -d "$dir" ]]; then
echo "文件夹${dir}不存在,正在创建"
mkdir -p ${dir}
fi
}
TEMP_DIR='./temp'
# 创建temp文件夹存放中转数据
ensureDir ${TEMP_DIR}
# 读取网络拓扑配置
json=`cat lab_topology.json`
# 保存配置列表
list=`echo ${json} | jq '.'`
# 获取网络拓扑的节点个数
length=`echo ${json} | jq '.|length'`
length=$(( $length - 1 ))
# 将节点信息和邻居信息输出到temp文件夹
for index in `seq 0 ${length}`
do
rName=$(echo ${list} | jq -r ".[$index].name")
nbs=$(echo ${list} | jq ".[$index].nbs")
nics=$(echo ${list} | jq ".[$index].nics")
transName=$(echo ${rName//\//.})
transName=$(echo ${transName#.})
echo ${nics} | jq '.' > ${TEMP_DIR}/${transName}.nics
echo ${nbs} | jq '.' > ${TEMP_DIR}/${transName}.nbs
done
transName=$(echo ${nodeName//\//.})
transName=$(echo ${transName#.})
# 当前节点的邻居信息
myNbs=$(cat ${TEMP_DIR}/${transName}.nbs)
myNics=$(cat ${TEMP_DIR}/${transName}.nics)
echo myNbs:
echo ${myNbs} | jq '.'
echo myNics:
echo ${myNics} | jq '.'
myNbsNum=`echo ${myNbs} | jq '.|length'`
let 'myNbsNum=myNbsNum-1'
echo ~~begin deal neighbour: ${myNbsNum}~~
for i in `seq 0 ${myNbsNum}`
do
echo ${i};
# 得到邻居的名字
neighbourName=$(echo ${myNbs} | jq -r ".[$i].name")
myIndex=$(echo ${myNbs} | jq -r ".[$i].nicIndex")
localUri=$(echo ${myNbs} | jq -r ".[$i].local")
remoteUri=$(echo ${myNbs} | jq -r ".[$i].target")
# 如果存在Face则删除
nfdc face destroy ${remoteUri}
# 为该邻居创建Face
echo "正在为邻居${neighbourName}创建Face"
if [[ -z "${localUri}" ]]; then
# echo "local uri empty: ${remoteUri}"
echo "nfdc face create remote ${remoteUri}"
nfdc face create remote ${remoteUri}
fi
if [[ -n "${localUri}" ]]; then
# echo "local uri not empty: ${remoteUri}"
echo "nfdc face create remote ${remoteUri} local ${localUri}"
nfdc face create remote ${remoteUri} local ${localUri}
fi
done