2019-09-30 10:53:51 -04:00
|
|
|
#!/bin/sh
|
|
|
|
|
# Copyright (c) Huawei Technologies Co., Ltd. 2018-2019. All rights reserved.
|
2020-04-27 10:42:10 +08:00
|
|
|
# syscontainer-tools is licensed under the Mulan PSL v2.
|
|
|
|
|
# You can use this software according to the terms and conditions of the Mulan PSL v2.
|
|
|
|
|
# You may obtain a copy of Mulan PSL v2 at:
|
|
|
|
|
# http://license.coscl.org.cn/MulanPSL2
|
2019-09-30 10:53:51 -04:00
|
|
|
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
|
|
|
|
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
|
|
|
|
|
# PURPOSE.
|
2020-04-27 10:42:10 +08:00
|
|
|
# See the Mulan PSL v2 for more details.
|
2020-01-21 17:00:00 +08:00
|
|
|
# Description: syscontainer tools wrapper
|
|
|
|
|
# Author: zhangsong234
|
|
|
|
|
# Create: 2020-01-17
|
2019-09-30 10:53:51 -04:00
|
|
|
|
|
|
|
|
LOG_DIR=/var/log/hyperagent
|
2020-01-21 17:00:00 +08:00
|
|
|
LOG_FILE=${LOG_DIR}/syscontainer-tools.log
|
2019-09-30 10:53:51 -04:00
|
|
|
|
|
|
|
|
## by default, isulad is installed in /usr/bin,
|
|
|
|
|
## but udevd do not have this path in PATH env
|
|
|
|
|
export PATH=$PATH:/usr/bin:/usr/local/bin:/usr/sbin
|
|
|
|
|
[ -d "$LOG_DIR" ] || mkdir -p $LOG_DIR
|
|
|
|
|
|
|
|
|
|
run_cmd() {
|
|
|
|
|
echo [$(date)]: $@ >> $LOG_FILE
|
|
|
|
|
$@
|
|
|
|
|
}
|
|
|
|
|
add_node() {
|
2020-01-21 17:00:00 +08:00
|
|
|
run_cmd syscontainer-tools --log $LOG_FILE add-device $id /dev/$o_dev:$devname
|
2019-09-30 10:53:51 -04:00
|
|
|
}
|
|
|
|
|
remove_node() {
|
2020-01-21 17:00:00 +08:00
|
|
|
run_cmd syscontainer-tools --log $LOG_FILE remove-device $id /dev/$o_dev:$devname
|
2019-09-30 10:53:51 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## $1 : Udev Action: (add|remove)
|
|
|
|
|
## $2 : Container ID
|
|
|
|
|
## $3 : Devname to mknod on host, like: sdc1
|
|
|
|
|
## $4 : Contianer device basename, like /dev/sdx
|
|
|
|
|
## $5 : Basename of the device on host and kernel
|
|
|
|
|
##
|
|
|
|
|
## We need to get the mknod number and compose with container device name together.
|
|
|
|
|
## eg: $3=sdc1, $4=/dev/sdx $5=sdc
|
|
|
|
|
## ==> $4 + ($3-$5) = /dev/sdx1
|
|
|
|
|
action=$1
|
|
|
|
|
id=$2
|
|
|
|
|
o_dev=$3
|
|
|
|
|
devname=$4$(echo $3 | sed "s/$5//g")
|
|
|
|
|
|
|
|
|
|
${action}_node
|