async Task DecorateWithNetworkProperties(IVirtualMachine vm, VmExtendedDto vmDto, CancellationToken cancellationToken) { var primaryNic = await _azure.NetworkInterfaces.GetByIdAsync(vm.PrimaryNetworkInterfaceId, cancellationToken); vmDto.PrivateIp = primaryNic.PrimaryPrivateIP; try { if (primaryNic.PrimaryIPConfiguration != null) { var pip = await _azure.PublicIPAddresses.GetByIdAsync(primaryNic.PrimaryIPConfiguration.PublicIPAddressId, cancellationToken); if (pip != null) { vmDto.PublicIp = pip.IPAddress; } } } catch (Exception ex) { _logger.LogWarning(ex, $"Unable to fetch public IP settings for VM {vm.Name}"); } vmDto.NICs.Add(CreateNicDto(primaryNic)); foreach (var curNic in vm.NetworkInterfaceIds) { vmDto.NICs.Add(await CreateNicDto(curNic, cancellationToken)); } }
public async Task <VmExtendedDto> GetExtendedInfo(string resourceGroupName, string resourceName, CancellationToken cancellationToken = default) { var vm = await GetInternalAsync(resourceGroupName, resourceName); var result = new VmExtendedDto { PowerState = AzureVmUtil.GetPowerState(vm), OsType = AzureVmUtil.GetOsType(vm) }; if (vm == null) { return(result); } result.SizeName = vm.Size.ToString(); await DecorateWithNetworkProperties(vm, result, cancellationToken); result.Disks.Add(await CreateDiskDto(vm.OSDiskId, true, cancellationToken)); foreach (var curDiskKvp in vm.DataDisks.Values) { result.Disks.Add(CreateDiskDto(curDiskKvp, false)); } return(result); }
public static VmExtendedDto Create() { var result = new VmExtendedDto(); return(result); }