summaryrefslogtreecommitdiffstats
path: root/core/modules/qemu/runvirt-plugin-qemu/src/main/java/org/openslx/runvirt/virtualization/LibvirtVirtualMachine.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/modules/qemu/runvirt-plugin-qemu/src/main/java/org/openslx/runvirt/virtualization/LibvirtVirtualMachine.java')
-rw-r--r--core/modules/qemu/runvirt-plugin-qemu/src/main/java/org/openslx/runvirt/virtualization/LibvirtVirtualMachine.java81
1 files changed, 81 insertions, 0 deletions
diff --git a/core/modules/qemu/runvirt-plugin-qemu/src/main/java/org/openslx/runvirt/virtualization/LibvirtVirtualMachine.java b/core/modules/qemu/runvirt-plugin-qemu/src/main/java/org/openslx/runvirt/virtualization/LibvirtVirtualMachine.java
new file mode 100644
index 00000000..781bd938
--- /dev/null
+++ b/core/modules/qemu/runvirt-plugin-qemu/src/main/java/org/openslx/runvirt/virtualization/LibvirtVirtualMachine.java
@@ -0,0 +1,81 @@
+package org.openslx.runvirt.virtualization;
+
+import org.libvirt.Domain;
+import org.libvirt.LibvirtException;
+
+public class LibvirtVirtualMachine
+{
+ private Domain domain;
+
+ LibvirtVirtualMachine( Domain vm )
+ {
+ this.domain = vm;
+ }
+
+ public Domain getLibvirtDomain()
+ {
+ return this.domain;
+ }
+
+ public boolean isRunning() throws LibvirtVirtualMachineException
+ {
+ int state = 0;
+
+ try {
+ state = this.domain.isActive();
+ } catch ( LibvirtException e ) {
+ throw new LibvirtVirtualMachineException( e.getLocalizedMessage() );
+ }
+
+ return ( state == 0 ) ? false : true;
+ }
+
+ public void start() throws LibvirtVirtualMachineException
+ {
+ if ( !this.isRunning() ) {
+ try {
+ this.domain.create();
+ } catch ( LibvirtException e ) {
+ throw new LibvirtVirtualMachineException( e.getLocalizedMessage() );
+ }
+ }
+ }
+
+ public void stop() throws LibvirtVirtualMachineException
+ {
+ if ( this.isRunning() ) {
+ try {
+ this.domain.shutdown();
+ } catch ( LibvirtException e ) {
+ throw new LibvirtVirtualMachineException( e.getLocalizedMessage() );
+ }
+ }
+ }
+
+ public void suspend() throws LibvirtVirtualMachineException
+ {
+ try {
+ this.domain.suspend();
+ } catch ( LibvirtException e ) {
+ throw new LibvirtVirtualMachineException( e.getLocalizedMessage() );
+ }
+ }
+
+ public void resume() throws LibvirtVirtualMachineException
+ {
+ try {
+ this.domain.resume();
+ } catch ( LibvirtException e ) {
+ throw new LibvirtVirtualMachineException( e.getLocalizedMessage() );
+ }
+ }
+
+ public void reboot() throws LibvirtVirtualMachineException
+ {
+ try {
+ this.domain.reboot( 0 );
+ } catch ( LibvirtException e ) {
+ throw new LibvirtVirtualMachineException( e.getLocalizedMessage() );
+ }
+ }
+}