I'm using libvirt's Java API bindingsa and i've opened a connection :<div><div>Connect conn=null;</div><div>        Connect conn1=null;</div><div>        Connect conn2=null;</div><div>        Domain testDomain1 = null;</div>
<div><br></div><div>        //connect to host vm</div><div>        try{</div><div>            conn = new Connect("qemu:///system", true);</div><div>            System.out.println("exception ONE:");</div>
<div>        } catch (LibvirtException e){</div><div>            System.out.println("exception ONE caught:"+e);</div><div>            System.out.println(e.getError());</div><div>        }</div><div>     //get the domain in host vm</div>
<div>        try {</div><div>            testDomain1 = conn.domainLookupByName("hda1");</div><div>            System.out.println("exception TWO:");</div><div>        } catch (LibvirtException ex) {</div>
<div>            System.out.println("exception TWO CAUGHT");</div><div>            //Logger.getLogger(Migrate.class.getName()).log(Level.SEVERE, null, ex);</div><div>        }</div><div><br></div><div>        //check if domain is running</div>
<div>        try{</div><div><br></div><div>            System.out.println("Domain:" + testDomain1.getName() + " id " +</div><div>                               testDomain1.getID() + " running " +</div>
<div>                               testDomain1.getOSType());</div><div>            System.out.println("exception THREE:");</div><div>        } catch (LibvirtException e1){</div><div>            System.out.println("exception THREE caught: "+e1);</div>
<div>            System.out.println(e1.getError());</div><div>        }</div><div>        /*try{</div><div>             conn1 = new Connect("qemu+ssh://<a href="http://root@10.129.54.254/system">root@10.129.54.254/system</a>", true);</div>
<div>             //conn2 = new Connect("qemu+ssh://<a href="http://root@10.129.54.254/system">root@10.129.54.254/system</a>", true);</div><div>             Domain migrate1;</div><div>             System.out.println("done with ssh");</div>
<div>             String uri="tcp://<a href="http://root@10.129.54.254:49166">root@10.129.54.254:49166</a>";</div><div>             migrate1 = testDomain1.migrate(conn1,1,null,"tcp://<a href="mailto:root@10.129.54.254">root@10.129.54.254</a>",0);</div>
<div>             //int ret=testDomain1.migrateToURI("tcp://<a href="http://root@10.129.54.254:49155">root@10.129.54.254:49155</a>",1,null,0);</div><div>             System.out.println("exception FOUR:");</div>
<div>         }catch (LibvirtException e2){</div><div>            System.out.println("exception FOUR caught:"+e2);</div><div>            System.out.println(e2.getError());</div><div><br></div><div>    }*/</div><div>
        try{</div><div>            testDomain1.destroy();</div><div>            System.out.println("Destroyed"+testDomain1);</div><div><br></div><div>        }</div><div>        catch(LibvirtException e4){</div>
<div>            System.out.println("exception FOUR caught: "+e4);</div><div>            System.out.println(e4.getError());</div><div>        }</div></div><div>The output I'm getting is:</div><div><div>exception ONE:</div>
<div>exception TWO:</div><div>Domain:test id 1 running linux</div><div>exception THREE:</div><div>libvir: Domain error : operation virDomainDestroy forbidden for read only access</div><div>exception FOUR caught: org.libvirt.LibvirtException: operation virDomainDestroy forbidden for read only access</div>
<div>level:VIR_ERR_ERROR</div><div>code:VIR_ERR_OPERATION_DENIED</div><div>domain:VIR_FROM_DOM</div><div>hasConn:false</div><div>hasDom:false</div><div>hasNet:false</div><div>message:operation virDomainDestroy forbidden for read only access</div>
<div>str1:operation %s forbidden for read only access</div><div>str2:virDomainDestroy</div><div>str3:null</div><div>int1:-1</div><div>int2:-1</div><div><br></div><div>BUILD SUCCESSFUL (total time: 23 minutes 38 seconds)</div>
</div><div><br></div><div>I've used qemu:///system but why is my operation being denied?</div><div><br></div><div>Thanks!</div>