private bool IsAvereVM(AvereCluster avereCluster, string vmName) { var controllerName = avereCluster.ControllerName; var vfxtPrefix = avereCluster.ClusterName.ToLowerInvariant(); return(vmName != null && (vmName.Equals(controllerName, StringComparison.InvariantCultureIgnoreCase) || vmName.ToLowerInvariant().StartsWith(vfxtPrefix))); }
public AvereClusterOverviewModel(AvereCluster avereCluster) : base(avereCluster) { if (avereCluster != null) { VServerIPRange = avereCluster.VServerIPRange; ManagementIP = avereCluster.ManagementIP; SshConnectionDetails = avereCluster.SshConnectionDetails; } }
private async Task <List <VirtualMachineStatus> > GetVirtualMachineStatus(AvereCluster avereCluster) { var avereVmNames = await GetAvereVMNames(avereCluster); var tasks = avereVmNames.Select(vmName => GetVirtualMachineStatus(avereCluster.SubscriptionId, avereCluster.ResourceGroupName, vmName)); await Task.WhenAll(tasks); return((await Task.WhenAll(tasks)).ToList()); }
public AddAvereClusterModel(AvereCluster cluster) { RepositoryName = cluster.Name; RepositoryType = cluster.RepositoryType; NewResourceGroupName = cluster.ResourceGroupName; SubscriptionId = cluster.SubscriptionId; if (cluster.Subnet?.ResourceId != null) { SubnetResourceIdLocationAndAddressPrefix = cluster.Subnet.ToString(); } }
public AddAvereClusterModel(AvereCluster cluster) { SubscriptionId = cluster.SubscriptionId; RepositoryName = cluster.Name; RepositoryType = cluster.RepositoryType; NewResourceGroupName = cluster.ResourceGroupName; ClusterName = cluster.ClusterName; VMSize = cluster.VmSize; NodeCount = cluster.NodeCount; CacheSizeInGB = cluster.AvereCacheSizeGB; UseControllerPasswordCredential = cluster.UseControllerPasswordCredential; ControllerPassword = cluster.UseControllerPasswordCredential ? cluster.ControllerPasswordOrSshKey : null; ControllerSshKey = cluster.UseControllerPasswordCredential ? null : cluster.ControllerPasswordOrSshKey; AdminPassword = cluster.ManagementAdminPassword; }
private async Task UpdateAvereFromDeploymentAsync( DeploymentExtended deployment, AvereCluster avereCluster) { await Task.CompletedTask; if (avereCluster.Deployment.ProvisioningState == ProvisioningState.Succeeded) { if (deployment.Properties.Outputs != null) { var outputs = deployment.Properties.Outputs as JObject; avereCluster.SshConnectionDetails = (string)outputs["ssh_string"]?["value"]; avereCluster.ManagementIP = (string)outputs["mgmt_ip"]?["value"]; avereCluster.VServerIPRange = (string)outputs["vserver_ips"]?["value"]; } } }
public AvereClusterOverviewModel(AvereCluster avereCluster) { if (avereCluster != null) { Name = avereCluster.Name; RepositoryType = avereCluster.RepositoryType; SubscriptionId = avereCluster.SubscriptionId; if (avereCluster.Subnet != null) { SubnetName = avereCluster.Subnet.Name; SubnetVNetName = avereCluster.Subnet.VNetName; SubnetResourceId = avereCluster.Subnet.ResourceId; SubnetPrefix = avereCluster.Subnet.AddressPrefix; SubnetLocation = avereCluster.Subnet.Location; } } }
private async Task <List <string> > GetAvereVMNames(AvereCluster avereCluster) { var controllerName = avereCluster.ControllerName; var vfxtPrefix = avereCluster.ClusterName; using (var computeClient = await _clientProvider.CreateComputeManagementClient(avereCluster.SubscriptionId)) { var vms = await computeClient.VirtualMachines.ListAsync(avereCluster.ResourceGroupName); var vmNames = vms.Select(vm => vm.Name).Where(name => IsAvereVM(avereCluster, name)).ToList(); while (!string.IsNullOrEmpty(vms.NextPageLink)) { vms = await computeClient.VirtualMachines.ListAsync(avereCluster.ResourceGroupName); vmNames.AddRange(vms.Select(vm => vm.Name).Where(name => IsAvereVM(avereCluster, name))); } return(vmNames); } }
private async Task DeleteAvereAsync(AvereCluster avereCluster) { try { var avereClusterVmNames = await GetAvereVMNames(avereCluster); foreach (var vmName in avereClusterVmNames) { await DeleteVirtualMachineAsync( avereCluster.SubscriptionId, avereCluster.ResourceGroupName, vmName); } } catch (CloudException ex) when(ex.ResourceNotFound()) { // RG doesn't exist } }