// Copyright 2012 Citrix Systems, Inc. Licensed under the // Apache License, Version 2.0 (the "License"); you may not use this // file except in compliance with the License. Citrix Systems, Inc. // reserves all rights not expressly granted by the License. // You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // Automatically generated by addcopyright.py at 04/03/2012 package com.cloud.ovm.object; import java.util.ArrayList; import java.util.List; import java.util.Map; import org.apache.xmlrpc.XmlRpcException; import com.cloud.ovm.object.OvmHost.Details; public class OvmVm extends OvmObject { public static final String CD = "CD"; public static final String HDD = "HDD"; public static final String HVM = "HVM"; public static final String PV = "PV"; public static final String FROMCONFIGFILE = "FROMCONFIGFILE"; public static class Details { public int cpuNum; public long memory; public OvmDisk.Details rootDisk; public List<OvmDisk.Details> disks; public List<OvmVif.Details> vifs; public String name; public String uuid; public String powerState; public String bootDev; public String type; public Details() { disks = new ArrayList<OvmDisk.Details>(); vifs = new ArrayList<OvmVif.Details>(); } public String toJson() { return Coder.toJson(this); } } public OvmVm() { } /*********** XML RPC Call **************/ public static void create(Connection c, Details d) throws XmlRpcException { Object[] params = {d.toJson()}; c.call("OvmVm.create", params); } public static Map<String, String> reboot(Connection c, String vmName) throws XmlRpcException { Object[] params = {vmName}; String res = (String) c.call("OvmVm.reboot", params); return Coder.mapFromJson(res); } public static void stop(Connection c, String vmName) throws XmlRpcException { Object[] params = {vmName}; /* Agent will destroy vm if vm shutdowns failed due to timout after 10 mins, so we set timeout to 20 mins here*/ c.callTimeoutInSec("OvmVm.stop", params, 1200); } public static Details getDetails(Connection c, String vmName) throws XmlRpcException { Object[] params = {vmName}; String res = (String)c.call("OvmVm.getDetails", params); return Coder.fromJson(res, OvmVm.Details.class); } public static Map<String, String> getVmStats(Connection c, String vmName) throws XmlRpcException { Object[] params = {vmName}; String res = (String)c.call("OvmVm.getVmStats", params); return Coder.mapFromJson(res); } public static void migrate(Connection c, String vmName, String dest) throws XmlRpcException { Object[] params = {vmName, dest}; c.call("OvmVm.migrate", params); } public static Map<String, String> register(Connection c, String vmName) throws XmlRpcException { Object[] params = {vmName}; String res = (String) c.call("OvmVm.register", params); return Coder.mapFromJson(res); } public static Integer getVncPort(Connection c, String vmName) throws XmlRpcException { Object[] params = {vmName}; String res = (String) c.call("OvmVm.getVncPort", params); Map<String, String> result = Coder.mapFromJson(res); return Integer.parseInt(result.get("vncPort")); } public static void detachOrAttachIso(Connection c, String vmName, String iso, Boolean isAttach) throws XmlRpcException { Object[] params = {vmName, iso, isAttach}; c.call("OvmVm.detachOrAttachIso", params); } }