<br clear="all"><div>Hello ,</div><div><br></div><div><font color="#000000"><b>I want to  write a script to attach a  &#39;.iso&#39; image to a vm </b></font></div><div>so ,can you please help me or tell me some api so that i can continue my work !!!</div>
<div>I have some &#39;.iso &#39; file in my storage .</div><div><br></div><div><div>script       <b>rhevm_test.py</b></div></div><div><br></div><div><font color="#0000ff">from ovirtsdk.api import API</font></div><div><font color="#0000ff">from ovirtsdk.xml import params</font></div>
<div><font color="#0000ff">import time</font></div><div><font color="#0000ff"><br></font></div><div><font color="#0000ff">rhevm_uri = &quot;<a href="https://rhevm301.xxx.xx.com:8443/api">https://rhevm301.xxx.xx.com:8443/api</a>&quot;</font></div>
<div><font color="#0000ff">rhevm_username = &quot;<a href="mailto:admin@rhevm301.xxx.xx.com">admin@rhevm301.xxx.xx.com</a>&quot;</font></div><div><font color="#0000ff">rhevm_password = &quot;iso*help&quot;</font></div><div>
<font color="#0000ff"><br></font></div><div><font color="#0000ff">api = API(url=rhevm_uri, username=rhevm_username, password=rhevm_password)</font></div><div><font color="#0000ff">print &quot;Connected to RHEVM Successful&quot;</font></div>
<div><font color="#0000ff"><br></font></div><div><font color="#0000ff">MB = 1024*1024</font></div><div><font color="#0000ff">GB = 1024*MB</font></div><div><font color="#0000ff">VM_NAME = &#39;test_vm&#39;</font></div><div>
<font color="#0000ff">DESCRIP = &#39;testing vm&#39;</font></div><div><font color="#0000ff">CLUSTER_NAME =  &#39;Default&#39;<br></font></div><div><font color="#0000ff">STORAGE_NAME =  &#39;rhevmVMdata&#39;</font></div><div>
<div><font color="#0000ff"><br></font></div><div><font color="#0000ff">domain_name= &#39;rhevmiso&#39;  </font></div><div><font color="#0000ff">domain_type = &#39;ISO&#39;</font></div></div><div><font color="#0000ff"><br>
</font></div><div><font color="#0000ff"><br></font></div><div><font color="#0000ff">try:</font></div><div><font color="#0000ff">    api.vms.add(params.VM(name=VM_NAME,description=DESCRIP, memory=2*GB,cluster=api.clusters.get(CLUSTER_NAME), template=api.templates.get(&#39;Blank&#39;) , </font><font color="#ff0000">cdroms = &#39;CentOS-6.2-x86_64-LiveCD.iso </font><span style="color:rgb(0,0,255)">&#39;))</span></div>
<div><font color="#0000ff">    </font></div><div><font color="#0000ff">    print &#39;VM created&#39;</font></div><div><font color="#0000ff"><br></font></div><div><font color="#0000ff">    api.vms.get(VM_NAME).nics.add(params.NIC(name=&#39;nic1&#39;, network=params.Network(name=&#39;rhevm&#39;), interface=&#39;Red Hat VirtIO&#39;))</font></div>
<div><font color="#0000ff">    print &#39;NIC added to VM&#39;</font></div><div><font color="#0000ff"><br></font></div><div><font color="#0000ff">    api.vms.get(VM_NAME).disks.add(params.Disk(storage_domains=params.StorageDomains(storage_domain=[api.storagedomains.get(STORAGE_NAME)]),size=512*MB,status=None,interface=&#39;VirtIO&#39;,format=&#39;Preallocated&#39;,sparse=True,bootable=True))</font></div>
<div><font color="#0000ff"><br></font></div><div><font color="#0000ff">    print &#39;Disk added to VM&#39;</font></div><div><font color="#0000ff">    print &#39;Waiting for VM to reach Down status&#39;</font></div><div><font color="#0000ff">    while api.vms.get(VM_NAME).status.state != &#39;down&#39;:</font></div>
<div><font color="#0000ff">        time.sleep(1)</font></div><div><font color="#0000ff">except Exception as e:</font></div><div><font color="#0000ff">    print &#39;Failed to create VM with disk and NIC\n%s&#39; % str(e)</font></div>
<div><font color="#0000ff"><br></font></div><div><font color="#0000ff">time.sleep(10)</font></div><div><font color="#0000ff"><br></font></div><div><font color="#0000ff">try:</font></div><div><font color="#0000ff">    if api.vms.get(VM_NAME).status.state != &#39;up&#39;:</font></div>
<div><font color="#0000ff">        print &#39;Starting VM&#39;</font></div><div><font color="#0000ff">        api.vms.get(VM_NAME).start()</font></div><div><font color="#0000ff">        print &#39;Waiting for VM to reach Up status&#39;</font></div>
<div><font color="#0000ff">        while api.vms.get(VM_NAME).status.state != &#39;up&#39;:</font></div><div><font color="#0000ff">            time.sleep(1)</font></div><div><font color="#0000ff">    else:</font></div><div>
<font color="#0000ff">        print &#39;VM already up&#39;</font></div><div><font color="#0000ff">except Exception as e:</font></div><div><font color="#0000ff">     print &#39;Failed to Start VM:\n%s&#39; % str(e)</font></div>
<div><br></div><div> </div><div>and got some exceptions</div><div><br></div><div><div>Connected to RHEVM Successful</div><div>Failed to create VM with disk and NIC</div><div>&#39;str&#39; object has no attribute &#39;export&#39;</div>
<div>Failed to Start VM:</div><div>&#39;NoneType&#39; object has no attribute &#39;status&#39;</div></div><div><br></div><div>if i remove this <font color="#ff0000">cdroms = &#39;CentOS-6.2-x86_64-LiveCD.iso </font><span style="color:rgb(0,0,255)">&#39;  </span><font color="#000000">the code will works fine and it will create a vm with blank template w/o any &#39;.iso&#39; attached !!</font></div>
<br>
<div><br></div><div><b><font color="#9900ff"><br></font></b></div><div><b><font color="#9900ff"><br></font></b></div><div><b><font color="#9900ff"><br></font></b></div><div><b><font color="#9900ff"><br></font></b></div><div>
<b><font color="#9900ff">With Regards,</font></b></div><div><b><font color="#9900ff">Romil</font></b></div><div><br></div><div><br></div><div><br></div>