Hi!
I've attached my code
The error I got was:
run:
Domain:hda2 id 11 running hvm
libvir: Domain error : operation virDomainMigrate forbidden for read only
access
exception FOUR caught:org.libvirt.LibvirtException: operation
virDomainMigrate forbidden for read only access
level:VIR_ERR_ERROR
code:VIR_ERR_OPERATION_DENIED
domain:VIR_FROM_DOM
hasConn:false
hasDom:false
hasNet:false
message:operation virDomainMigrate forbidden for read only access
str1:operation %s forbidden for read only access
str2:virDomainMigrate
str3:null
int1:-1
int2:-1
BUILD SUCCESSFUL (total time: 9 seconds)
PLEASE help me. I've been stuck with it for three days!
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/*
* Migrate.java
*
* Created on 4 Jun, 2011, 1:00:04 AM
*/
package src.test.java;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.libvirt.Connect;
import org.libvirt.Domain;
import org.libvirt.LibvirtException;
/**
*
* @author pre
*/
public class Migrate extends javax.swing.JFrame {
/** Creates new form Migrate */
public Migrate() {
initComponents();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jLabel2 = new javax.swing.JLabel();
jLabel1 = new javax.swing.JLabel();
vmname123 = new javax.swing.JTextField();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jButton1.setText("Cancel");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jButton2.setText("Migrate");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
jLabel2.setText("Name of VM");
jLabel1.setText("Migrate Virtual Machine");
vmname123.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
vmname123ActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(layout.createSequentialGroup()
.addGap(95, 95, 95)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 113, Short.MAX_VALUE)
.addComponent(vmname123, javax.swing.GroupLayout.PREFERRED_SIZE, 88, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(jLabel1)))
.addGroup(layout.createSequentialGroup()
.addGap(211, 211, 211)
.addComponent(jButton2)
.addGap(43, 43, 43)
.addComponent(jButton1)))
.addGap(88, 88, 88))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(76, 76, 76)
.addComponent(jLabel1)
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel2)
.addComponent(vmname123, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(272, 272, 272)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButton2)
.addComponent(jButton1))
.addGap(29, 29, 29))
);
pack();
}// </editor-fold>
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
System.exit(0);
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
Connect conn=null;
Connect conn1=null;
Connect conn2=null;
Domain testDomain = null;
//connect to host vm
try{
conn = new Connect("qemu:///system", true);
} catch (LibvirtException e){
System.out.println("exception ONE caught:"+e);
System.out.println(e.getError());
}
//get the domain in host vm
try {
testDomain = conn.domainLookupByName(vmname123.getText());
} catch (LibvirtException ex) {
System.out.println("exception TWO CAUGHT");
//Logger.getLogger(Migrate.class.getName()).log(Level.SEVERE, null, ex);
}
//check if domain is running
try{
System.out.println("Domain:" + testDomain.getName() + " id " +
testDomain.getID() + " running " +
testDomain.getOSType());
} catch (LibvirtException e1){
System.out.println("exception THREE caught: "+e1);
System.out.println(e1.getError());
}
//connect to the guest vm
try{
conn1 = new Connect("qemu+ssh://[email protected]/system", true);
//conn2 = new Connect("qemu+ssh://[email protected]/system", true);
Domain migrate1;
migrate1 = testDomain.migrate(conn1,1,null,"tcp://[email protected]:49155",0);
}catch (LibvirtException e2){
System.out.println("exception FOUR caught:"+e2);
System.out.println(e2.getError());
}
//migrate the host to guest
/*try{
Domain d1;
migrate = testDomain.migrate(conn1,1, "hda2","tcp://[email protected]:49155",0);
}catch (LibvirtException e3){
System.out.println("exception five caught:"+e3);
System.out.println(e3.getError());
}*/
}
private void vmname123ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Migrate().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JTextField vmname123;
// End of variables declaration
_______________________________________________
libvirt-users mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/libvirt-users