wsp-10329 Adding hyper-v replica to HyperV Provider. Server Part.

This commit is contained in:
Alexander Trofimov 2015-04-16 02:13:06 -04:00
parent 414414b11d
commit 41fd1230bf
23 changed files with 5194 additions and 37 deletions

View file

@ -0,0 +1,49 @@
using System.Management.Automation.Runspaces;
namespace WebsitePanel.Providers.Virtualization
{
public static class ReplicaHelper
{
public static void SetReplicaServer(PowerShellManager powerShell, bool enabled, string remoteServer, string thumbprint, string storagePath)
{
Command cmd = new Command("Set-VMReplicationServer");
cmd.Parameters.Add("ReplicationEnabled", enabled);
if (!string.IsNullOrEmpty(remoteServer))
{
cmd.Parameters.Add("ComputerName", remoteServer);
}
if (!string.IsNullOrEmpty(thumbprint))
{
cmd.Parameters.Add("AllowedAuthenticationType", "Certificate");
cmd.Parameters.Add("CertificateThumbprint", thumbprint);
}
if (!string.IsNullOrEmpty(storagePath))
{
cmd.Parameters.Add("ReplicationAllowedFromAnyServer", true);
cmd.Parameters.Add("DefaultStorageLocation", storagePath);
}
powerShell.Execute(cmd, false);
}
public static void SetFirewallRule(PowerShellManager powerShell, bool enabled)
{
Command cmd = new Command("Enable-Netfirewallrule");
cmd.Parameters.Add("DisplayName", "Hyper-V Replica HTTPS Listener (TCP-In)");
powerShell.Execute(cmd, false);
}
public static void RemoveVmReplication(PowerShellManager powerShell, string vmName, string server)
{
Command cmd = new Command("Remove-VMReplication");
cmd.Parameters.Add("VmName", vmName);
if (!string.IsNullOrEmpty(server)) cmd.Parameters.Add("ComputerName", server);
powerShell.Execute(cmd, false);
}
}
}