<div dir="ltr"><div><span id="result_box" class="" lang="en"><span class="">Hello</span><span>,</span> <br><span class="">I</span><span>'m writing</span> <span class="">a python script</span> <span class="">to draw</span> <span class="">a graph</span> <span class="">of the disks</span> <span class="">and virtual machines</span> <span class="">in relation to</span> <span class="">their</span> <span class="">"</span><span>position</span><span>"</span> <span class="">in the data center</span><span>.</span><br> <span class="">I am using</span> <span class="">pygraphviz</span> <span class="">to draw</span> <span class="">the graph</span><span>,</span> <span class="">I found</span> <span class="">the</span> <span class="">vm</span> <span class="">and their</span> <span class="">disks</span><span>,</span> <span class="">data centers and</span> <span class="">their</span> <span class="">storage</span> <span class="">domains</span><span class="">, but</span> <span class="">I can not connect</span> <span class="">the disks</span> <span class="">to the storage</span> <span class="">domains</span><span>.</span><br> <span class="">Here's the code</span> <span class="">I'm using</span><span class="">:<br><br>#! /usr/bin/python<br><br>import pygraphviz as PG<br>from ovirtsdk.api import API<br>from ovirtsdk.xml import params<br>#per Graphviz:<br>A = PG.AGraph(directed=True, strict=False)<br>A.graph_attr.update(size="800")<br>########<br> <br>VERSION = params.Version(major='3', minor='0')<br> <br>URL = '<a href="https://xxx/api">https://xxx/api</a>'<br>USERNAME = 'xxx'<br>PASSWORD = 'yyyy'<br> <br>api = API ( url=URL,<br> username=USERNAME,<br> password=PASSWORD,<br> insecure=True)<br>for vm in api.vms.list():<br> for disco in vm.get_disks().list():<br> A.add_edge(<a href="http://vm.name">vm.name</a>,<a href="http://disco.name">disco.name</a>)<br><br>for dc in api.datacenters.list():<br> A.add_edge("ovirt-engine", dc.get_name())<br> for dc_storage in dc.storagedomains.list(): <br> A.add_edge(dc.get_name(), <a href="http://dc_storage.name">dc_storage.name</a>)<br><br>api.disconnect() <br>A.write('ovirt_graph.dot')<br>A.layout(prog='dot')<br>A.draw('ovirt_graph.png') # draw png<br></span></span></div></div>