删除Openstack僵尸instances和projects
来源:互联网 发布:怎么禁止程序访问网络 编辑:程序博客网 时间:2024/06/11 10:01
脚本主要包括三个方面:
1.删除指定的僵尸实例;
2.清空某个project的数据;
3.清空所有projects的数据。
clean.sh
#!/bin/bashcase "$1" in 1) read -p "Please input specified instance UUID: " echo "Begin to remove specified instance $REPLY....." ./clean_instance.sh $1 $REPLY echo "Script completes!!!!!" exit 1 ;; 2) read -p "Please input specified project tenand_id: " echo "Begin to clear up specified project instances $REPLY....." ./clean_instance.sh $1 $REPLY echo "Script completes!!!!!" exit 1 ;; 3) read -p "Warnning: The operate would be clear up all project instances,do you want to excute it still [y/n]?" echo "begin to clear up all project instances....." ./clean_instance.sh $1 $REPLY echo "Script completes!!!!!" exit 1 ;; *) echo "Usage: clean 1 --- will remove specified instance. clean 2 --- will clear up specified project instances. clean 3 --- will clear up all project instances." exit 1 ;;esacexit 0
clean_all_instances.sh
#!/bin/bash############################################ @file clean_all_instances.sh ## @brief Remove project database in mysql ## @author Evan Yang ## @version 1.1 ## @date 2015-04-21 ################################################################################## ## Remove nova datebase ## ####################################################Set variables##########USER="root"PASSWORD="password"if [ "$1" -eq 2 ];then OPTIONAL_TID="WHERE tenant_id='$2'" OPTIONAL_TID2="AND tenant_id='$2'" OPTIONAL_PID="WHERE project_id='$2'"else OPTIONAL_TID="" OPTIONAL_TID2="" OPTIONAL_PID=""fiecho $OPTIONAL_TIDFLOATING_IPS=`mysql -u$USER -p$PASSWORD -se "USE neutron; SELECT floating_ip_address FROM floatingips $OPTIONAL_TID;"`INSTANCES=`mysql -u$USER -p$PASSWORD -se "USE nova; SELECT distinct display_name FROM instances $OPTIONAL_PID;"`UUIDS=`mysql -u$USER -p$PASSWORD -se "USE nova; SELECT uuid FROM instances $OPTIONAL_PID;"`#########Remove all floating-ip############for fi in $FLOATING_IPSdofor in in $INSTANCESdo echo $in ":Begin to remove floating ip..." nova remove-floating-ip $in $fi echo "The floating ip has been removed."donedone########Reset values of quota_usages########mysql -u$USER -p$PASSWORD -e "USE nova; UPDATE quota_usages SET in_use=0 $OPTIONAL_PID;"########Remove instance in nova database#####for ui in $UUIDSdo echo "begin to remove instance $ui..." mysql -u$USER -p$PASSWORD -e "USE nova; DELETE FROM security_group_instance_association WHERE instance_uuid='$ui';" mysql -u$USER -p$PASSWORD -e "USE nova; DELETE FROM instance_info_caches WHERE instance_uuid='$ui';" mysql -u$USER -p$PASSWORD -e "USE nova; DELETE FROM block_device_mapping WHERE instance_uuid='$ui';" mysql -u$USER -p$PASSWORD -e "USE nova; DELETE FROM instance_extra WHERE instance_uuid='$ui';" mysql -u$USER -p$PASSWORD -e "USE nova; DELETE FROM instance_actions_events WHERE action_id IN (SELECT id FROM instance_actions WHERE instance_uuid='$ui') ;" mysql -u$USER -p$PASSWORD -e "USE nova; DELETE FROM instance_actions WHERE instance_uuid='$ui';" mysql -u$USER -p$PASSWORD -e "USE nova; DELETE FROM instance_faults WHERE instance_uuid='$ui';" mysql -u$USER -p$PASSWORD -e "USE nova; DELETE FROM instance_system_metadata WHERE instance_uuid='$ui';" mysql -u$USER -p$PASSWORD -e "USE nova; DELETE FROM instances WHERE uuid='$ui';" rm -rf /var/lib/nova/instances/$ui echo "The instance has been removed."done###################################### ## Remove neutron datebase ## ######################################echo "Begin to remove neutron..."#######Remove routers from neutron database#######echo "Begin to remove routers..."RESERVE_ROUTER_ID=`mysql -u$USER -p$PASSWORD -se "USE neutron; SELECT id FROM routers WHERE name ='extrouter';"`mysql -u$USER -p$PASSWORD -se "USE neutron; DELETE FROM routers WHERE id != '$RESERVE_ROUTER_ID' $OPTIONAL_TID2;"echo "All routers have been removed."########Remove ports from neutron database########echo "Begin to remove ports..."RESERVE_PORT_ID=`mysql -u$USER -p$PASSWORD -se "USE neutron; SELECT port_id FROM routerports WHERE router_id = '$RESERVE_ROUTER_ID';"`mysql -u$USER -p$PASSWORD -se "USE neutron; DELETE FROM ports WHERE id !='$RESERVE_PORT_ID' $OPTIONAL_TID2;"echo "All ports have been removed."#########Remove subnets from neutron database######echo "Begin to remove subnets..."RESERVE_NETWORK_ID=`mysql -u$USER -p$PASSWORD -se "USE neutron; SELECT network_id FROM externalnetworks;"`mysql -u$USER -p$PASSWORD -se "USE neutron; DELETE FROM subnets WHERE network_id != '$RESERVE_NETWORK_ID' $OPTIONAL_TID2;"echo "All subnets have been removed."#########Remove networks from neutron database######echo "Begin to remove networks..."mysql -u$USER -p$PASSWORD -se "USE neutron; DELETE FROM networks WHERE id != '$RESERVE_NETWORK_ID' $OPTIONAL_TID2;"echo "All networks have been removed."echo "The neutron has been removed."###################################### ## Remove cinder datebase ## ######################################echo "Begin to remove cinder..."VOLUME_ID=`mysql -u$USER -p$PASSWORD -se "USE cinder; SELECT id FROM volumes $OPTIONAL_PID;"`for vid in $VOLUME_IDdo mysql -u$USER -p$PASSWORD -se "USE cinder; DELETE FROM reservations $OPTIONAL_PID;" mysql -u$USER -p$PASSWORD -se "USE cinder; DELETE FROM quota_usages $OPTIONAL_PID;" mysql -u$USER -p$PASSWORD -se "USE cinder; UPDATE iscsi_targets SET volume_id='NULL' where volume_id='$vid';" mysql -u$USER -p$PASSWORD -se "USE cinder; DELETE FROM volume_admin_metadata where volume_id='$vid';" mysql -u$USER -p$PASSWORD -se "USE cinder; DELETE FROM volumes $OPTIONAL_PID;" echo "delete volume $vid from hardware... " rm -rf /dev/cinder-volumes/volume-$vid echo "volume $vid has been removed."doneecho "All subnets have been removed."
#!/bin/bash############################################ @file clean_instance.sh ## @brief Remove database in mysql ## @author Evan Yang ## @version 1.0 ## @date 2015-04-21 ##########################################################Set variables##########USER="root"PASSWORD="password"#####################################if [ -n "$2" ];then if [ "$1" -eq 1 ];then UUID=`mysql -u$USER -p$PASSWORD -se "USE nova; SELECT distinct uuid FROM instances WHERE uuid='$2';"` if [ -n "$UUID" ];then mysql -u$USER -p$PASSWORD -e "USE nova; DELETE FROM security_group_instance_association WHERE instance_uuid='$2';" mysql -u$USER -p$PASSWORD -e "USE nova; DELETE FROM instance_info_caches WHERE instance_uuid='$2';" mysql -u$USER -p$PASSWORD -e "USE nova; DELETE FROM block_device_mapping WHERE instance_uuid='$2';" mysql -u$USER -p$PASSWORD -e "USE nova; DELETE FROM instance_extra WHERE instance_uuid='$2';" mysql -u$USER -p$PASSWORD -e "USE nova; DELETE FROM instance_actions_events WHERE action_id IN (SELECT id FROM instance_actions WHERE instance_uuid='$2') ;" mysql -u$USER -p$PASSWORD -e "USE nova; DELETE FROM instance_actions WHERE instance_uuid='$2';" mysql -u$USER -p$PASSWORD -e "USE nova; DELETE FROM instance_faults WHERE instance_uuid='$2';" mysql -u$USER -p$PASSWORD -e "USE nova; DELETE FROM instance_system_metadata WHERE instance_uuid='$2';" mysql -u$USER -p$PASSWORD -e "USE nova; DELETE FROM instances WHERE uuid='$2';" rm -rf /var/lib/nova/instances/$2 echo "The instance $2 has been removed." else echo "The specified instance is not exsit,please check it." fi elif [ "$1" -eq 2 ];then INSTANCE=`mysql -u$USER -p$PASSWORD -se "USE keystone; SELECT distinct id FROM project WHERE id='$2';"` if [ -n "$INSTANCE" ];then ./clean_all_instances.sh $1 $2 else echo "The specified project is not exsit,please check it." fi elif [ "$1" -eq 3 ];then if [ "$2"x = "y"x ]||[ "$2"x = "yes"x ]||[ "$2"x = "Y"x ];then ./clean_all_instances.sh $1 else echo "You have cancelled the operation." fi else echo "Wrong input parameter,please check." fielse echo "Lack of some parameters,please check and try it again."fi
0 0
- 删除Openstack僵尸instances和projects
- 删除Openstack僵尸instances和projects(2)
- openstack删除僵尸卷
- openstack手动删除僵尸instance
- openstack essex 删除僵尸实例
- openstack folsom 删除僵尸实例
- openstack-network-instances
- openstack之 glance_image和instances存储目录解析
- 僵尸进程和如何删除僵尸进程
- openstack 删除僵尸实例 删除实例 删除instance(非屏蔽外键)
- openstack 删除僵尸实例 删除实例 删除instance(非屏蔽外键)
- OpenStack Juno删除僵尸实例 - 虚机实例相关nova表
- instances
- How to Setup OpenStack to use Local Disks for Instances
- Openstack Nova 源码分析 — Create instances (nova-conductor阶段)
- SVN僵尸文件删除
- 删除僵尸实例脚本
- linux删除僵尸进程
- Mysql写出高质量的sql语句的几点建议
- Android NFC基础开发教程
- html5横、竖屏状态 以及禁止横屏
- android studio加载动态库
- 在STL中的functor(仿函数)的另一用处:当模板函数必须要进行偏特化时
- 删除Openstack僵尸instances和projects
- android常用的命令
- Android listview addHeaderView和addFooterView详解
- C++语言学习之STL 的组成
- 实现当点击一张图片的时候,图片会放大,再点击图片的背景的时候,图片会缩放回去
- Hive实战之日志分析
- add two numbers
- leetcode_Isomorphic Strings _easy
- cocos2d-x 减少游戏耗电量