websitepanel/WebsitePanel/Sources/WebsitePanel.Server/VirtualizationServerForPrivateCloud.asmx.cs

1073 lines
42 KiB
C#
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Copyright (c) 2012, Outercurve Foundation.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
// - Redistributions of source code must retain the above copyright notice, this
// list of conditions and the following disclaimer.
//
// - Redistributions in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
//
// - Neither the name of the Outercurve Foundation nor the names of its
// contributors may be used to endorse or promote products derived from this
// software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
using System;
using System.Data;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.ComponentModel;
using Microsoft.Web.Services3;
using WebsitePanel.Providers;
using WebsitePanel.Providers.Virtualization;
using WebsitePanel.Server.Utils;
using System.Collections.Generic;
namespace WebsitePanel.Server
{
/// <summary>
/// Summary description for VirtualizationServer
/// </summary>
[WebService(Namespace = "http://smbsaas/websitepanel/server/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[Policy("ServerPolicy")]
[ToolboxItem(false)]
public class VirtualizationServerForPrivateCloud : HostingServiceProviderWebService, WebsitePanel.Providers.VirtualizationForPC.IVirtualizationServerForPC
{
private WebsitePanel.Providers.VirtualizationForPC.IVirtualizationServerForPC VirtualizationForPC
{
get { return (WebsitePanel.Providers.VirtualizationForPC.IVirtualizationServerForPC)Provider; }
}
#region Virtual Machines
[WebMethod, SoapHeader("settings")]
public VMInfo GetVirtualMachine(string vmId)
{
try
{
Log.WriteStart("'{0}' GetVirtualMachine", ProviderSettings.ProviderName);
VMInfo result = VirtualizationForPC.GetVirtualMachine(vmId);
Log.WriteEnd("'{0}' GetVirtualMachine", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' GetVirtualMachine", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public VirtualMachine GetVirtualMachineEx(string vmId)
{
try
{
Log.WriteStart("'{0}' GetVirtualMachineEx", ProviderSettings.ProviderName);
VirtualMachine result = VirtualizationForPC.GetVirtualMachineEx(vmId);
Log.WriteEnd("'{0}' GetVirtualMachineEx", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' GetVirtualMachineEx", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public List<VirtualMachine> GetVirtualMachines()
{
try
{
Log.WriteStart("'{0}' GetVirtualMachines", ProviderSettings.ProviderName);
List<VirtualMachine> result = VirtualizationForPC.GetVirtualMachines();
Log.WriteEnd("'{0}' GetVirtualMachines", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' GetVirtualMachines", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public byte[] GetVirtualMachineThumbnailImage(string vmId, ThumbnailSize size)
{
try
{
Log.WriteStart("'{0}' GetVirtualMachineThumbnailImage", ProviderSettings.ProviderName);
byte[] result = VirtualizationForPC.GetVirtualMachineThumbnailImage(vmId, size);
Log.WriteEnd("'{0}' GetVirtualMachineThumbnailImage", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' GetVirtualMachineThumbnailImage", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public VMInfo CreateVirtualMachine(VMInfo vm)
{
try
{
Log.WriteStart("'{0}' CreateVirtualMachine", ProviderSettings.ProviderName);
VMInfo result = VirtualizationForPC.CreateVirtualMachine(vm);
Log.WriteEnd("'{0}' CreateVirtualMachine", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' CreateVirtualMachine", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public VMInfo CreateVMFromVM(string sourceName, VMInfo vmTemplate, Guid taskGuid)
{
VMInfo result = vmTemplate;
try
{
Log.WriteStart("'{0}' CreateVMFromVM", ProviderSettings.ProviderName);
result = VirtualizationForPC.CreateVMFromVM(sourceName, vmTemplate, taskGuid);
Log.WriteEnd("'{0}' CreateVMFromVM", ProviderSettings.ProviderName);
return result;
}
catch (System.TimeoutException)
{
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' CreateVMFromVM", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public VMInfo UpdateVirtualMachine(VMInfo vm)
{
try
{
Log.WriteStart("'{0}' UpdateVirtualMachine", ProviderSettings.ProviderName);
VMInfo result = VirtualizationForPC.UpdateVirtualMachine(vm);
Log.WriteEnd("'{0}' UpdateVirtualMachine", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' UpdateVirtualMachine", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public JobResult ChangeVirtualMachineState(string vmId, VirtualMachineRequestedState newState)
{
try
{
Log.WriteStart("'{0}' ChangeVirtualMachineState", ProviderSettings.ProviderName);
JobResult result = VirtualizationForPC.ChangeVirtualMachineState(vmId, newState);
Log.WriteEnd("'{0}' ChangeVirtualMachineState", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' ChangeVirtualMachineState", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public ReturnCode ShutDownVirtualMachine(string vmId, bool force, string reason)
{
try
{
Log.WriteStart("'{0}' ShutDownVirtualMachine", ProviderSettings.ProviderName);
ReturnCode result = VirtualizationForPC.ShutDownVirtualMachine(vmId, force, reason);
Log.WriteEnd("'{0}' ShutDownVirtualMachine", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' ShutDownVirtualMachine", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public List<ConcreteJob> GetVirtualMachineJobs(string vmId)
{
try
{
Log.WriteStart("'{0}' GetVirtualMachineJobs", ProviderSettings.ProviderName);
List<ConcreteJob> result = VirtualizationForPC.GetVirtualMachineJobs(vmId);
Log.WriteEnd("'{0}' GetVirtualMachineJobs", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' GetVirtualMachineJobs", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public JobResult RenameVirtualMachine(string vmId, string name)
{
try
{
Log.WriteStart("'{0}' RenameVirtualMachine", ProviderSettings.ProviderName);
JobResult result = VirtualizationForPC.RenameVirtualMachine(vmId, name);
Log.WriteEnd("'{0}' RenameVirtualMachine", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' RenameVirtualMachine", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public JobResult DeleteVirtualMachine(string vmId)
{
try
{
Log.WriteStart("'{0}' DeleteVirtualMachine", ProviderSettings.ProviderName);
JobResult result = VirtualizationForPC.DeleteVirtualMachine(vmId);
Log.WriteEnd("'{0}' DeleteVirtualMachine", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' DeleteVirtualMachine", ProviderSettings.ProviderName), ex);
throw;
}
}
//[WebMethod, SoapHeader("settings")]
//public JobResult ExportVirtualMachine(string vmId, string exportPath)
//{
// try
// {
// Log.WriteStart("'{0}' ExportVirtualMachine", ProviderSettings.ProviderName);
// JobResult result = VirtualizationForPC.ExportVirtualMachine(vmId, exportPath);
// Log.WriteEnd("'{0}' ExportVirtualMachine", ProviderSettings.ProviderName);
// return result;
// }
// catch (Exception ex)
// {
// Log.WriteError(String.Format("'{0}' ExportVirtualMachine", ProviderSettings.ProviderName), ex);
// throw;
// }
//}
#endregion
#region Snapshots
[WebMethod, SoapHeader("settings")]
public List<VirtualMachineSnapshot> GetVirtualMachineSnapshots(string vmId)
{
try
{
Log.WriteStart("'{0}' GetVirtualMachineSnapshots", ProviderSettings.ProviderName);
List<VirtualMachineSnapshot> result = VirtualizationForPC.GetVirtualMachineSnapshots(vmId);
Log.WriteEnd("'{0}' GetVirtualMachineSnapshots", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' GetVirtualMachineSnapshots", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public VirtualMachineSnapshot GetSnapshot(string snapshotId)
{
try
{
Log.WriteStart("'{0}' GetSnapshot", ProviderSettings.ProviderName);
VirtualMachineSnapshot result = VirtualizationForPC.GetSnapshot(snapshotId);
Log.WriteEnd("'{0}' GetSnapshot", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' GetSnapshot", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public JobResult CreateSnapshot(string vmId)
{
try
{
Log.WriteStart("'{0}' CreateSnapshot", ProviderSettings.ProviderName);
JobResult result = VirtualizationForPC.CreateSnapshot(vmId);
Log.WriteEnd("'{0}' CreateSnapshot", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' CreateSnapshot", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public JobResult RenameSnapshot(string vmId, string snapshotId, string name)
{
try
{
Log.WriteStart("'{0}' RenameSnapshot", ProviderSettings.ProviderName);
JobResult result = VirtualizationForPC.RenameSnapshot(vmId, snapshotId, name);
Log.WriteEnd("'{0}' RenameSnapshot", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' RenameSnapshot", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public JobResult ApplySnapshot(string vmId, string snapshotId)
{
try
{
Log.WriteStart("'{0}' ApplySnapshot", ProviderSettings.ProviderName);
JobResult result = VirtualizationForPC.ApplySnapshot(vmId, snapshotId);
Log.WriteEnd("'{0}' ApplySnapshot", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' ApplySnapshot", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public JobResult DeleteSnapshot(string vmId, string snapshotId)
{
try
{
Log.WriteStart("'{0}' DeleteSnapshot", ProviderSettings.ProviderName);
JobResult result = VirtualizationForPC.DeleteSnapshot(vmId, snapshotId);
Log.WriteEnd("'{0}' DeleteSnapshot", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' DeleteSnapshot", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public JobResult DeleteSnapshotSubtree(string snapshotId)
{
try
{
Log.WriteStart("'{0}' DeleteSnapshotSubtree", ProviderSettings.ProviderName);
JobResult result = VirtualizationForPC.DeleteSnapshotSubtree(snapshotId);
Log.WriteEnd("'{0}' DeleteSnapshotSubtree", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' DeleteSnapshotSubtree", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public byte[] GetSnapshotThumbnailImage(string snapshotId, ThumbnailSize size)
{
try
{
Log.WriteStart("'{0}' GetSnapshotThumbnailImage", ProviderSettings.ProviderName);
byte[] result = VirtualizationForPC.GetSnapshotThumbnailImage(snapshotId, size);
Log.WriteEnd("'{0}' GetSnapshotThumbnailImage", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' GetSnapshotThumbnailImage", ProviderSettings.ProviderName), ex);
throw;
}
}
#endregion
#region Virtual Switches
[WebMethod, SoapHeader("settings")]
public List<VirtualSwitch> GetExternalSwitches(string computerName)
{
try
{
Log.WriteStart("'{0}' GetExternalSwitches", ProviderSettings.ProviderName);
List<VirtualSwitch> result = VirtualizationForPC.GetExternalSwitches(computerName);
Log.WriteEnd("'{0}' GetExternalSwitches", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' GetExternalSwitches", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public List<VirtualSwitch> GetSwitches()
{
try
{
Log.WriteStart("'{0}' GetSwitches", ProviderSettings.ProviderName);
List<VirtualSwitch> result = VirtualizationForPC.GetSwitches();
Log.WriteEnd("'{0}' GetSwitches", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' GetSwitches", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public bool SwitchExists(string switchId)
{
try
{
Log.WriteStart("'{0}' SwitchExists", ProviderSettings.ProviderName);
bool result = VirtualizationForPC.SwitchExists(switchId);
Log.WriteEnd("'{0}' SwitchExists", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' SwitchExists", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public VirtualSwitch CreateSwitch(string name)
{
try
{
Log.WriteStart("'{0}' CreateSwitch", ProviderSettings.ProviderName);
VirtualSwitch result = VirtualizationForPC.CreateSwitch(name);
Log.WriteEnd("'{0}' CreateSwitch", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' CreateSwitch", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public ReturnCode DeleteSwitch(string switchId)
{
try
{
Log.WriteStart("'{0}' DeleteSwitch", ProviderSettings.ProviderName);
ReturnCode result = VirtualizationForPC.DeleteSwitch(switchId);
Log.WriteEnd("'{0}' DeleteSwitch", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' DeleteSwitch", ProviderSettings.ProviderName), ex);
throw;
}
}
#endregion
#region DVD operations
[WebMethod, SoapHeader("settings")]
public string GetInsertedDVD(string vmId)
{
try
{
Log.WriteStart("'{0}' GetInsertedDVD", ProviderSettings.ProviderName);
string result = VirtualizationForPC.GetInsertedDVD(vmId);
Log.WriteEnd("'{0}' GetInsertedDVD", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' GetInsertedDVD", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public JobResult InsertDVD(string vmId, string isoPath)
{
try
{
Log.WriteStart("'{0}' InsertDVD", ProviderSettings.ProviderName);
JobResult result = VirtualizationForPC.InsertDVD(vmId, isoPath);
Log.WriteEnd("'{0}' InsertDVD", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' InsertDVD", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public JobResult EjectDVD(string vmId)
{
try
{
Log.WriteStart("'{0}' EjectDVD", ProviderSettings.ProviderName);
JobResult result = VirtualizationForPC.EjectDVD(vmId);
Log.WriteEnd("'{0}' EjectDVD", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' EjectDVD", ProviderSettings.ProviderName), ex);
throw;
}
}
#endregion
#region Library
[WebMethod, SoapHeader("settings")]
public LibraryItem[] GetLibraryItems(string path)
{
try
{
Log.WriteStart("'{0}' GetLibraryItems", ProviderSettings.ProviderName);
LibraryItem[] result = VirtualizationForPC.GetLibraryItems(path);
Log.WriteEnd("'{0}' GetLibraryItems", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' GetLibraryItems", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public LibraryItem[] GetOSLibraryItems()
{
try
{
Log.WriteStart("'{0}' GetLibraryItems", ProviderSettings.ProviderName);
LibraryItem[] result = VirtualizationForPC.GetOSLibraryItems();
Log.WriteEnd("'{0}' GetLibraryItems", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' GetLibraryItems", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public LibraryItem[] GetHosts()
{
try
{
Log.WriteStart("'{0}' GetHosts", ProviderSettings.ProviderName);
LibraryItem[] result = VirtualizationForPC.GetHosts();
Log.WriteEnd("'{0}' GetHosts", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' GetHosts", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public LibraryItem[] GetClusters()
{
try
{
Log.WriteStart("'{0}' GetHosts", ProviderSettings.ProviderName);
LibraryItem[] result = VirtualizationForPC.GetClusters();
Log.WriteEnd("'{0}' GetHosts", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' GetHosts", ProviderSettings.ProviderName), ex);
throw;
}
}
#endregion
#region KVP items
[WebMethod, SoapHeader("settings")]
public List<KvpExchangeDataItem> GetKVPItems(string vmId)
{
try
{
Log.WriteStart("'{0}' GetKVPItems", ProviderSettings.ProviderName);
List<KvpExchangeDataItem> result = VirtualizationForPC.GetKVPItems(vmId);
Log.WriteEnd("'{0}' GetKVPItems", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' GetKVPItems", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public List<KvpExchangeDataItem> GetStandardKVPItems(string vmId)
{
try
{
Log.WriteStart("'{0}' GetStandardKVPItems", ProviderSettings.ProviderName);
List<KvpExchangeDataItem> result = VirtualizationForPC.GetStandardKVPItems(vmId);
Log.WriteEnd("'{0}' GetStandardKVPItems", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' GetStandardKVPItems", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public JobResult AddKVPItems(string vmId, KvpExchangeDataItem[] items)
{
try
{
Log.WriteStart("'{0}' AddKVPItems", ProviderSettings.ProviderName);
JobResult result = VirtualizationForPC.AddKVPItems(vmId, items);
Log.WriteEnd("'{0}' AddKVPItems", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' AddKVPItems", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public JobResult RemoveKVPItems(string vmId, string[] itemNames)
{
try
{
Log.WriteStart("'{0}' RemoveKVPItems", ProviderSettings.ProviderName);
JobResult result = VirtualizationForPC.RemoveKVPItems(vmId, itemNames);
Log.WriteEnd("'{0}' RemoveKVPItems", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' RemoveKVPItems", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public JobResult ModifyKVPItems(string vmId, KvpExchangeDataItem[] items)
{
try
{
Log.WriteStart("'{0}' ModifyKVPItems", ProviderSettings.ProviderName);
JobResult result = VirtualizationForPC.ModifyKVPItems(vmId, items);
Log.WriteEnd("'{0}' ModifyKVPItems", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' ModifyKVPItems", ProviderSettings.ProviderName), ex);
throw;
}
}
#endregion
#region Storage
[WebMethod, SoapHeader("settings")]
public VirtualHardDiskInfo GetVirtualHardDiskInfo(string vhdPath)
{
try
{
Log.WriteStart("'{0}' GetVirtualHardDiskInfo", ProviderSettings.ProviderName);
VirtualHardDiskInfo result = VirtualizationForPC.GetVirtualHardDiskInfo(vhdPath);
Log.WriteEnd("'{0}' GetVirtualHardDiskInfo", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' GetVirtualHardDiskInfo", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public MountedDiskInfo MountVirtualHardDisk(string vhdPath)
{
try
{
Log.WriteStart("'{0}' MountVirtualHardDisk", ProviderSettings.ProviderName);
MountedDiskInfo result = VirtualizationForPC.MountVirtualHardDisk(vhdPath);
Log.WriteEnd("'{0}' MountVirtualHardDisk", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' MountVirtualHardDisk", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public ReturnCode UnmountVirtualHardDisk(string vhdPath)
{
try
{
Log.WriteStart("'{0}' UnmountVirtualHardDisk", ProviderSettings.ProviderName);
ReturnCode result = VirtualizationForPC.UnmountVirtualHardDisk(vhdPath);
Log.WriteEnd("'{0}' UnmountVirtualHardDisk", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' UnmountVirtualHardDisk", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public JobResult ExpandVirtualHardDisk(string vhdPath, UInt64 sizeGB)
{
try
{
Log.WriteStart("'{0}' ExpandVirtualHardDisk", ProviderSettings.ProviderName);
JobResult result = VirtualizationForPC.ExpandVirtualHardDisk(vhdPath, sizeGB);
Log.WriteEnd("'{0}' ExpandVirtualHardDisk", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' ExpandVirtualHardDisk", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public JobResult ConvertVirtualHardDisk(string sourcePath, string destinationPath, VirtualHardDiskType diskType)
{
try
{
Log.WriteStart("'{0}' ConvertVirtualHardDisk", ProviderSettings.ProviderName);
JobResult result = VirtualizationForPC.ConvertVirtualHardDisk(sourcePath, destinationPath, diskType);
Log.WriteEnd("'{0}' ConvertVirtualHardDisk", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' ConvertVirtualHardDisk", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public void DeleteRemoteFile(string path)
{
try
{
Log.WriteStart("'{0}' DeleteRemoteFile", ProviderSettings.ProviderName);
VirtualizationForPC.DeleteRemoteFile(path);
Log.WriteEnd("'{0}' DeleteRemoteFile", ProviderSettings.ProviderName);
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' DeleteRemoteFile", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public void ExpandDiskVolume(string diskAddress, string volumeName)
{
try
{
Log.WriteStart("'{0}' ExpandDiskVolume", ProviderSettings.ProviderName);
VirtualizationForPC.ExpandDiskVolume(diskAddress, volumeName);
Log.WriteEnd("'{0}' ExpandDiskVolume", ProviderSettings.ProviderName);
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' ExpandDiskVolume", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public string ReadRemoteFile(string path)
{
try
{
Log.WriteStart("'{0}' ReadRemoteFile", ProviderSettings.ProviderName);
string result = VirtualizationForPC.ReadRemoteFile(path);
Log.WriteEnd("'{0}' ReadRemoteFile", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' ReadRemoteFile", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public void WriteRemoteFile(string path, string content)
{
try
{
Log.WriteStart("'{0}' WriteRemoteFile", ProviderSettings.ProviderName);
VirtualizationForPC.WriteRemoteFile(path, content);
Log.WriteEnd("'{0}' WriteRemoteFile", ProviderSettings.ProviderName);
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' WriteRemoteFile", ProviderSettings.ProviderName), ex);
throw;
}
}
#endregion
#region Jobs
[WebMethod, SoapHeader("settings")]
public ConcreteJob GetJob(string jobId)
{
try
{
Log.WriteStart("'{0}' GetJob", ProviderSettings.ProviderName);
ConcreteJob result = VirtualizationForPC.GetJob(jobId);
Log.WriteEnd("'{0}' GetJob", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' GetJob", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public List<ConcreteJob> GetAllJobs()
{
try
{
Log.WriteStart("'{0}' GetAllJobs", ProviderSettings.ProviderName);
List<ConcreteJob> result = VirtualizationForPC.GetAllJobs();
Log.WriteEnd("'{0}' GetAllJobs", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' GetAllJobs", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public ChangeJobStateReturnCode ChangeJobState(string jobId, ConcreteJobRequestedState newState)
{
try
{
Log.WriteStart("'{0}' ChangeJobState", ProviderSettings.ProviderName);
ChangeJobStateReturnCode result = VirtualizationForPC.ChangeJobState(jobId, newState);
Log.WriteEnd("'{0}' ChangeJobState", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' ChangeJobState", ProviderSettings.ProviderName), ex);
throw;
}
}
#endregion
#region Configuration
[WebMethod, SoapHeader("settings")]
public int GetProcessorCoresNumber(string templateId)
{
try
{
Log.WriteStart("'{0}' GetProcessorCoresNumber", ProviderSettings.ProviderName);
int result = VirtualizationForPC.GetProcessorCoresNumber(templateId);
Log.WriteEnd("'{0}' GetProcessorCoresNumber", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' GetProcessorCoresNumber", ProviderSettings.ProviderName), ex);
throw;
}
}
#endregion
#region Hyper-V Cloud
[WebMethod, SoapHeader("settings")]
public bool CheckServerState(VMForPCSettingsName control, string connString, string connName)
{
try
{
Log.WriteStart("'{0}' CheckServerState", ProviderSettings.ProviderName);
bool result = VirtualizationForPC.CheckServerState(control, connString, connName);
Log.WriteEnd("'{0}' CheckServerState", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' CheckServerState", ProviderSettings.ProviderName), ex);
throw;
}
}
#endregion Hyper-V Cloud
#region Monitoring
[WebMethod, SoapHeader("settings")]
public List<MonitoredObjectEvent> GetDeviceEvents(string serviceName, string displayName)
{
try
{
Log.WriteStart("'{0}' GetDeviceEvents", ProviderSettings.ProviderName);
List<MonitoredObjectEvent> result = VirtualizationForPC.GetDeviceEvents(serviceName, displayName);
Log.WriteEnd("'{0}' GetDeviceEvents", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' GetDeviceEvents", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public List<MonitoredObjectAlert> GetMonitoringAlerts(string serviceName, string virtualMachineName)
{
try
{
Log.WriteStart("'{0}' GetMonitoringAlerts", ProviderSettings.ProviderName);
List<MonitoredObjectAlert> result = VirtualizationForPC.GetMonitoringAlerts(serviceName, virtualMachineName);
Log.WriteEnd("'{0}' GetMonitoringAlerts", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' GetMonitoringAlerts", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public List<PerformanceDataValue> GetPerfomanceValue(string VmName, PerformanceType perf, DateTime startPeriod, DateTime endPeriod)
{
try
{
Log.WriteStart("'{0}' GetPerfomanceValue", ProviderSettings.ProviderName);
List<PerformanceDataValue> result = VirtualizationForPC.GetPerfomanceValue(VmName, perf, startPeriod, endPeriod);
Log.WriteEnd("'{0}' GetPerfomanceValue", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' GetPerfomanceValue", ProviderSettings.ProviderName), ex);
throw;
}
}
#endregion
#region Networing
[WebMethod, SoapHeader("settings")]
public void ConfigureCreatedVMNetworkAdapters(VMInfo vmInfo)
{
try
{
Log.WriteStart("'{0}' ConfigureCreatedVMNetworkAdapters", ProviderSettings.ProviderName);
VirtualizationForPC.ConfigureCreatedVMNetworkAdapters(vmInfo);
Log.WriteEnd("'{0}' ConfigureCreatedVMNetworkAdapters", ProviderSettings.ProviderName);
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' ConfigureCreatedVMNetworkAdapters", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public VMInfo MoveVM(VMInfo vmForMove)
{
try
{
Log.WriteStart("'{0}' MoveVM", ProviderSettings.ProviderName);
VMInfo ret = VirtualizationForPC.MoveVM(vmForMove);
Log.WriteEnd("'{0}' MoveVM", ProviderSettings.ProviderName);
return ret;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' MoveVM", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public VirtualNetworkInfo[] GetVirtualNetworkByHostName(string hostName)
{
try
{
Log.WriteStart("'{0}' GetVirtualNetworkByHostName", ProviderSettings.ProviderName);
VirtualNetworkInfo[] result = VirtualizationForPC.GetVirtualNetworkByHostName(hostName);
Log.WriteEnd("'{0}' GetVirtualNetworkByHostName", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' GetVirtualNetworkByHostName", ProviderSettings.ProviderName), ex);
throw;
}
}
#endregion
}
}