public class Program
{
public static void Main(string[] args)
{
string hostname = args[0];
int port = 80; string username = args[1]; ;
string password = args[2];
string template = args[3];
Session session = new Session(hostname, port);
session.login_with_password(username, password, API_Version.API_1_3);
List<XenRef<VM>> vmRefs = VM.get_by_name_label(session, template);
if (vmRefs.Count == 0)
System.Console.WriteLine("Template not found");
foreach (XenRef<VM> vmRef in vmRefs)
{
if (vmRefs.Count == 1)
{
VM vm = VM.get_record(session, vmRef);
System.Console.WriteLine("Cloning VM '{0}'...", vm.name_label);
XenRef<VM> cloneVMref = VM.clone(session, vmRef,
string.Format("Cloned VM (from '{0}')",vm.name_label));
System.Console.WriteLine("Cloning VM '{0}'... Done", cloneVMref.ToString());
VM.provision(session, cloneVMref);
VM CloneVM = VM.get_record(session, cloneVMref);
foreach (XenRef<VIF> vifref in CloneVM.VIFs)
{
System.Console.WriteLine(VIF.get_MAC(session, vifref));
}
}
else { System.Console.WriteLine("More then one VM Template found with same name"); }
}
}
}
what a luck...I was exactly looking for something like this.
Thanks