private void ListAllVMs() { var servicesList = this.ComputeClient.HostedServices.List(); foreach (var service in servicesList.HostedServices) { try { var deploymentGetResponse = this.ComputeClient.Deployments.GetBySlot(service.ServiceName, DeploymentSlot.Production); foreach (var role in deploymentGetResponse.Roles) { if (role.RoleType == "PersistentVMRole") { RoleInstance instance = deploymentGetResponse.RoleInstances.First(r => r.RoleName == role.RoleName); var vmContext = new PersistentVMRoleListContext { ServiceName = service.ServiceName, Status = instance.InstanceStatus, Name = instance.RoleName }; WriteObject(vmContext, true); } } } catch (CloudException e) { if (e.Response.StatusCode != HttpStatusCode.NotFound) { throw; } } } }
private T CreateVMContext <T>(string serviceName, NSM.Role vmRole, NSM.RoleInstance roleInstance, NSM.DeploymentGetResponse deployment) where T : PersistentVMRoleContext, new() { var vmContext = new T { ServiceName = serviceName, DeploymentName = deployment.Name, DNSName = deployment.Uri.AbsoluteUri, Name = vmRole.RoleName, AvailabilitySetName = vmRole.AvailabilitySetName, Label = vmRole.Label, InstanceSize = vmRole.RoleSize, InstanceStatus = roleInstance == null ? string.Empty : roleInstance.InstanceStatus, IpAddress = roleInstance == null ? string.Empty : roleInstance.IPAddress, PublicIPAddress = roleInstance == null ? null : roleInstance.PublicIPs == null || !roleInstance.PublicIPs.Any() ? null : roleInstance.PublicIPs.First().Address, PublicIPName = roleInstance == null ? null : roleInstance.PublicIPs == null || !roleInstance.PublicIPs.Any() ? null : !string.IsNullOrEmpty(roleInstance.PublicIPs.First().Name) ? roleInstance.PublicIPs.First().Name : PersistentVMHelper.GetPublicIPName(vmRole), InstanceStateDetails = roleInstance == null ? string.Empty : roleInstance.InstanceStateDetails, PowerState = roleInstance == null ? string.Empty : roleInstance.PowerState.ToString(), HostName = roleInstance == null ? string.Empty : roleInstance.HostName, InstanceErrorCode = roleInstance == null ? string.Empty : roleInstance.InstanceErrorCode, InstanceName = roleInstance == null ? string.Empty : roleInstance.InstanceName, InstanceFaultDomain = roleInstance == null ? string.Empty : roleInstance.InstanceFaultDomain.HasValue ? roleInstance.InstanceFaultDomain.Value.ToString(CultureInfo.InvariantCulture) : null, InstanceUpgradeDomain = roleInstance == null ? string.Empty : roleInstance.InstanceUpgradeDomain.HasValue ? roleInstance.InstanceUpgradeDomain.Value.ToString(CultureInfo.InvariantCulture) : null, Status = roleInstance == null ? string.Empty : roleInstance.InstanceStatus, GuestAgentStatus = roleInstance == null ? null : Mapper.Map <PVM.GuestAgentStatus>(roleInstance.GuestAgentStatus), ResourceExtensionStatusList = roleInstance == null ? null : Mapper.Map <List <PVM.ResourceExtensionStatus> >(roleInstance.ResourceExtensionStatusList), OperationId = deployment.RequestId, OperationStatus = deployment.StatusCode.ToString(), OperationDescription = CommandRuntime.ToString(), VM = new PersistentVM { AvailabilitySetName = vmRole.AvailabilitySetName, Label = vmRole.Label, RoleName = vmRole.RoleName, RoleSize = vmRole.RoleSize, RoleType = vmRole.RoleType, DefaultWinRmCertificateThumbprint = vmRole.DefaultWinRmCertificateThumbprint, ProvisionGuestAgent = vmRole.ProvisionGuestAgent, ResourceExtensionReferences = Mapper.Map <PVM.ResourceExtensionReferenceList>(vmRole.ResourceExtensionReferences), DataVirtualHardDisks = Mapper.Map <Collection <PVM.DataVirtualHardDisk> >(vmRole.DataVirtualHardDisks), OSVirtualHardDisk = Mapper.Map <PVM.OSVirtualHardDisk>(vmRole.OSVirtualHardDisk), ConfigurationSets = PersistentVMHelper.MapConfigurationSets(vmRole.ConfigurationSets) } }; return(vmContext); }