Ambari服务依赖关系图生成脚本

1. 生成服务依赖关系

#!/usr/bin/python

import sys
import commands
import json

def genDependString(ip):
  url="curl --user admin:admin -H 'X-Requested-By:admin' 'http://{0}:8080/api/v1/stacks/HDP/versions/2.2/services?fields=StackServices/required_services&minimal_response=true' 2> /dev/null".format(ip)
  (status, output) = commands.getstatusoutput(url)
  if not status:
    items = json.loads(output).get("items")
    content = ""
    for item in items:
      service_name = item.get("StackServices").get("service_name")
      require_services = item.get("StackServices").get("required_services")
      content += '''  "ROOT" -> "{0}"\n'''.format(service_name)
      if not len(require_services):
        content += '''  "{0}" -> "NULL"\n'''.format(service_name)
      for require_service in require_services:
        content += '''  "{0}" -> "{1}"\n'''.format(service_name, require_service)
    content = "digraph G {\n" + content + "}"
    return content

if __name__ == '__main__':
  ip = sys.argv[1]
  print genDependString(ip)

2. 在线生成依赖关系图

posted @   Florian  阅读(1718)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2013-07-13 红黑树数据结构剖析
点击右上角即可分享
微信分享提示