基于python的添加和删除安全组的脚本
来源:互联网 发布:unity3d安卓真机调试 编辑:程序博客网 时间:2024/05/16 15:40
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import subprocess
import json
import sys
import argparse
def R(s):
return “%s[31;2m%s%s[0m”%(chr(27), s, chr(27))
def get_present_sgid(vmid):
descmd = ‘/usr/bin/qcloudcli dfw DescribeSecurityGroups –instanceId ‘ + vmid.strip()
p = subprocess.Popen(descmd, shell=True, stdout=subprocess.PIPE)
output = p.communicate()[0]
res = json.loads(output)
sgid = []
for d in res[‘data’]:
sid = d[‘sgId’]
sgid.append(str(sid))
return sgid
def make_json(vmid,sgid):
pdata = {}
pdata[“instanceId”] = vmid
pdata[“sgIds”] = sgid
pjson = json.dumps(pdata)
return pjson
def add_sgid(vmfile,newsid):
fi = open(vmfile)
for v in fi:
v = v.strip()
res = get_present_sgid(v)
print res
res.append(newsid)
pjson = make_json(v,res)
modcmd = ‘qcloudcli dfw ModifySecurityGroupsOfInstance –instanceSet ‘ + “‘[” + pjson+ “]'”
p = subprocess.Popen(modcmd, shell=True, stdout=subprocess.PIPE)
output = p.communicate()[0]
print output
def remove_sgid(vmfile,newsid):
fi = open(vmfile)
for v in fi:
v = v.strip()
res = get_present_sgid(v)
res.remove(newsid)
pjson = make_json(v,res)
modcmd = ‘qcloudcli dfw ModifySecurityGroupsOfInstance –instanceSet ‘ + “‘[” + pjson+ “]'”
p = subprocess.Popen(modcmd, shell=True, stdout=subprocess.PIPE)
output = p.communicate()[0]
#print output
if __name__ == “__main__”:
parser=argparse.ArgumentParser(description=’change sgid’, usage=’%(prog)s [options]’)
parser.add_argument(‘-f’,’–file’, nargs=’?’, dest=’filehost’, help=’vmidfile’)
parser.add_argument(‘-g’,’–sgid’, nargs=’?’, dest=’sgid’, help=’sgid’)
parser.add_argument(‘-m’,’–method’, nargs=’?’, dest=’method’, help=’Methods only support to add or remove’)
if len(sys.argv)==1:
parser.print_help()
else:
args=parser.parse_args()
if args.filehost is not None and args.sgid is not None and args.method is not None:
if args.method == ‘add’:
add_sgid(args.filehost, args.sgid)
elif args.method == ‘remove’:
remove_sgid(args.filehost, args.sgid)
else:
print R(‘Methods only support to add or remove’)
else:
print R(‘Error format, please see the usage:’)
parser.print_help()
这个脚本支持批量增加和删除某个安全组,-f后面接一个文件,写入实例的id的列表,-g后面是要增加和删除的安全组Id,-m后面支持add 和remove操作,就是增加或删除,脚本整体思路是先找出实例的安全组列表,然后将新的安全组Id在列表中加入或移除
- 基于python的添加和删除安全组的脚本
- 安全删除和恢复文件的脚本
- 脚本:添加和删除table的行列。
- Linux安全删除和恢复文件的脚本
- js添加删除行和双击变文本框的脚本
- 删除.svn的python脚本
- Python脚本测试---列表的排序和删除
- 对Datagrid添加删除确认的脚本
- 学习Python列表的访问,添加和删除
- 基于ListView的滑动删除、添加、修改
- 一段删除.svn目录的python脚本
- 基于安全协议的https的页面测试脚本
- 基于安全协议的https的页面测试脚本
- LoadRunner 基于安全协议的https的页面测试脚本
- 约束的添加和删除
- 图的添加和删除
- 数组的添加和删除
- 基于Python 的京东秒杀 火车票脚本
- 使用websocket 实现即时消息
- Python数据库操作(PyMysql)
- 第一阶段第三天(数据类型,运算符)
- Java学习笔记-《Java程序员面试宝典》-第四章基础知识-4.1基本概念(4.1.3)
- 使用Linux系统开发php程序(如:ubuntu)
- 基于python的添加和删除安全组的脚本
- 堆排序 C++
- Filter(过滤器)
- JVM面试题
- Button相关学习
- EasyUI实现地址联动,显示默认值
- LIBRARY_PATH 和 LD_LIBRARY_PATH 的关系
- tomcat下配置https环境(windows环境)
- Win7打开文件提示快捷方式存在问题的解决方法