本文整理汇总了Python中web.model.host_group.HostGroup.query_grp_id方法的典型用法代码示例。如果您正苦于以下问题:Python HostGroup.query_grp_id方法的具体用法?Python HostGroup.query_grp_id怎么用?Python HostGroup.query_grp_id使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类web.model.host_group.HostGroup
的用法示例。
在下文中一共展示了HostGroup.query_grp_id方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: api_marathon_health
# 需要导入模块: from web.model.host_group import HostGroup [as 别名]
# 或者: from web.model.host_group.HostGroup import query_grp_id [as 别名]
def api_marathon_health():
marathon_stats = request.get_json()
if marathon_stats["eventType"] == "deployment_success":
action_type = marathon_stats["plan"]["steps"][-1]["actions"][-1]["type"]
app = marathon_stats["plan"]["steps"][-1]["actions"][-1]["app"].lstrip("/")
if action_type == "StopApplication":
grp_id = HostGroup.query_grp_id(app)
if grp_id > 0:
group_service.delete_group(grp_id)
else:
grp_id = HostGroup.create(app,"root",1)
if grp_id < 0:
grp_id = HostGroup.query_grp_id(app)
if grp_id < 0:
return 'grp_name no exist'
import requests,json
r = requests.get(MARATHON_ADDRESS+"/v2/apps/"+app)
app_info = json.loads(r.text)
marathon_hosts = []
for i in app_info["app"]["tasks"]:
marathon_hosts.append(i["host"])
vs,_ = Host.query(1, 10000000, '', '0', grp_id)
of_names = [v.hostname for v in vs]
of_names_set = set(of_names)
marathon_hosts_set = set(marathon_hosts)
delete_hosts = list(of_names_set - marathon_hosts_set)
add_hosts = list(marathon_hosts_set - of_names_set)
for h in add_hosts:
msg = GroupHost.bind(grp_id,h)
of_ids = [int(v.id) for v in vs if v.hostname in delete_hosts]
if len(delete_hosts)>0:
ids = ",".join('%s' % id for id in of_ids)
msg = GroupHost.unbind(int(grp_id[0]),ids)
return 'ok'