/// <summary>
 /// Initializes a new instance of the ProximityPlacementGroup class.
 /// </summary>
 /// <param name="location">Resource location</param>
 /// <param name="id">Resource Id</param>
 /// <param name="name">Resource name</param>
 /// <param name="type">Resource type</param>
 /// <param name="tags">Resource tags</param>
 /// <param name="proximityPlacementGroupType">Specifies the type of the
 /// proximity placement group. &lt;br&gt;&lt;br&gt; Possible values
 /// are: &lt;br&gt;&lt;br&gt; **Standard** : Co-locate resources within
 /// an Azure region or Availability Zone. &lt;br&gt;&lt;br&gt;
 /// **Ultra** : For future use. Possible values include: 'Standard',
 /// 'Ultra'</param>
 /// <param name="virtualMachines">A list of references to all virtual
 /// machines in the proximity placement group.</param>
 /// <param name="virtualMachineScaleSets">A list of references to all
 /// virtual machine scale sets in the proximity placement
 /// group.</param>
 /// <param name="availabilitySets">A list of references to all
 /// availability sets in the proximity placement group.</param>
 /// <param name="colocationStatus">Describes colocation status of the
 /// Proximity Placement Group.</param>
 /// <param name="intent">Specifies the user intent of the proximity
 /// placement group.</param>
 /// <param name="zones">Specifies the Availability Zone where virtual
 /// machine, virtual machine scale set or availability set associated
 /// with the  proximity placement group can be created.</param>
 public ProximityPlacementGroup(string location, string id = default(string), string name = default(string), string type = default(string), IDictionary <string, string> tags = default(IDictionary <string, string>), string proximityPlacementGroupType = default(string), IList <SubResourceWithColocationStatus> virtualMachines = default(IList <SubResourceWithColocationStatus>), IList <SubResourceWithColocationStatus> virtualMachineScaleSets = default(IList <SubResourceWithColocationStatus>), IList <SubResourceWithColocationStatus> availabilitySets = default(IList <SubResourceWithColocationStatus>), InstanceViewStatus colocationStatus = default(InstanceViewStatus), ProximityPlacementGroupPropertiesIntent intent = default(ProximityPlacementGroupPropertiesIntent), IList <string> zones = default(IList <string>))
     : base(location, id, name, type, tags)
 {
     ProximityPlacementGroupType = proximityPlacementGroupType;
     VirtualMachines             = virtualMachines;
     VirtualMachineScaleSets     = virtualMachineScaleSets;
     AvailabilitySets            = availabilitySets;
     ColocationStatus            = colocationStatus;
     Intent = intent;
     Zones  = zones;
     CustomInit();
 }
 /// <summary>
 /// Initializes a new instance of the BootDiagnosticsInstanceView
 /// class.
 /// </summary>
 /// <param name="consoleScreenshotBlobUri">The console screenshot blob
 /// URI.</param>
 /// <param name="serialConsoleLogBlobUri">The Linux serial console log
 /// blob Uri.</param>
 /// <param name="status">The boot diagnostics status information for
 /// the VM. &lt;br&gt;&lt;br&gt; NOTE: It will be set only if there are
 /// errors encountered in enabling boot diagnostics.</param>
 public BootDiagnosticsInstanceView(string consoleScreenshotBlobUri = default(string), string serialConsoleLogBlobUri = default(string), InstanceViewStatus status = default(InstanceViewStatus))
 {
     ConsoleScreenshotBlobUri = consoleScreenshotBlobUri;
     SerialConsoleLogBlobUri  = serialConsoleLogBlobUri;
     Status = status;
     CustomInit();
 }
Beispiel #3
0
 /// <summary>
 /// Initializes a new instance of the
 /// VirtualMachineExtensionHandlerInstanceView class.
 /// </summary>
 public VirtualMachineExtensionHandlerInstanceView(string type = default(string), string typeHandlerVersion = default(string), InstanceViewStatus status = default(InstanceViewStatus))
 {
     Type = type;
     TypeHandlerVersion = typeHandlerVersion;
     Status             = status;
 }
 /// <summary>
 /// Initializes a new instance of the VirtualMachineHealthStatus class.
 /// </summary>
 /// <param name="status">The health status information for the
 /// VM.</param>
 public VirtualMachineHealthStatus(InstanceViewStatus status = default(InstanceViewStatus))
 {
     Status = status;
     CustomInit();
 }
        public void TestVMDataDiskScenario()
        {
            using (var context = UndoContext.Current)
            {
                context.Start();
                EnsureClientsInitialized();

                ImageReference imgageRef = GetPlatformVMImage(useWindowsImage: true);
                // Create resource group
                var rgName = TestUtilities.GenerateName(TestPrefix);
                string storageAccountName = TestUtilities.GenerateName(TestPrefix);
                string asName = TestUtilities.GenerateName("as");
                VirtualMachine inputVM;
                bool passed = false;

                try
                {
                    // Create Storage Account, so that both the VMs can share it
                    var storageAccountOutput = CreateStorageAccount( rgName, storageAccountName );

                    Action<VirtualMachine> addDataDiskToVM = vm =>
                    {
                        string containerName = TestUtilities.GenerateName(TestPrefix);
                        var vhdContainer = string.Format(Constants.StorageAccountBlobUriTemplate, storageAccountName) + containerName;
                        var vhduri = vhdContainer + string.Format("/{0}.vhd", TestUtilities.GenerateName(TestPrefix));

                        vm.HardwareProfile.VirtualMachineSize = VirtualMachineSizeTypes.StandardA4;
                        vm.StorageProfile.DataDisks = new List<DataDisk>();
                        foreach (int index in new int[] {1, 2})
                        {
                            var diskName = "dataDisk" + index;
                            var ddUri = vhdContainer + string.Format("/{0}{1}.vhd", diskName, TestUtilities.GenerateName(TestPrefix));
                            var dd = new DataDisk
                            {
                                Caching = CachingTypes.None,
                                SourceImage = null,
                                DiskSizeGB = 10,
                                CreateOption = DiskCreateOptionTypes.Empty,
                                Lun = 1 + index,
                                Name = diskName,
                                VirtualHardDisk = new VirtualHardDisk
                                {
                                    Uri = ddUri
                                }
                            };
                            vm.StorageProfile.DataDisks.Add(dd);
                        }

                        var testStatus = new InstanceViewStatus
                        {
                            Code = "test",
                            Message = "test"
                        };

                        var testStatusList = new List<InstanceViewStatus> { testStatus };

                        // Negative tests for a bug in 5.0.0 that read-only fields have side-effect on the request body
                        vm.InstanceView = new VirtualMachineInstanceView
                        {
                            Statuses = testStatusList,
                            VMAgent = new VirtualMachineAgentInstanceView
                            {
                                Statuses = testStatusList,
                                ExtensionHandlers = new List<VirtualMachineExtensionHandlerInstanceView>
                                {
                                    new VirtualMachineExtensionHandlerInstanceView
                                    {
                                        Status = testStatus,
                                        Type = "test",
                                        TypeHandlerVersion = "test"
                                    }
                                },
                                VMAgentVersion = "test"
                            },
                            Disks = new List<DiskInstanceView>
                            {
                                new DiskInstanceView
                                {
                                    Statuses = testStatusList,
                                    Name = "test"
                                }
                            },
                            Extensions = new List<VirtualMachineExtensionInstanceView>
                            {
                                new VirtualMachineExtensionInstanceView
                                {
                                    Statuses = testStatusList
                                }
                            }
                        };
                    };

                    var vm1 = CreateVM_NoAsyncTracking(rgName, asName, storageAccountOutput, imgageRef, out inputVM, addDataDiskToVM);

                    var getVMWithInstanceViewResponse = m_CrpClient.VirtualMachines.GetWithInstanceView(rgName, inputVM.Name);
                    Assert.True(getVMWithInstanceViewResponse.StatusCode == HttpStatusCode.OK);
                    Assert.True(getVMWithInstanceViewResponse.VirtualMachine != null, "VM in Get");
                    ValidateVMInstanceView(inputVM, getVMWithInstanceViewResponse.VirtualMachine);

                    var vm2 = getVMWithInstanceViewResponse.VirtualMachine;
                    var vmReCreateResponse = m_CrpClient.VirtualMachines.CreateOrUpdate(rgName, getVMWithInstanceViewResponse.VirtualMachine);
                    Assert.True(vmReCreateResponse.Status != ComputeOperationStatus.Failed);

                    var lroResponse = m_CrpClient.VirtualMachines.Delete(rgName, inputVM.Name);
                    Assert.True(lroResponse.Status != OperationStatus.Failed);

                    passed = true;
                }
                finally
                {
                    var deleteResourceGroupResponse = m_ResourcesClient.ResourceGroups.Delete(rgName);
                    Assert.True(deleteResourceGroupResponse.StatusCode == HttpStatusCode.OK);
                    Assert.True(passed);
                }
            }
        }
        private void VerifyNonDefaultValuesSucceed()
        {
            // Negative tests for a bug in 5.0.0 that read-only fields have side-effect on the request body
            var testStatus = new InstanceViewStatus
            {
                Code = "test",
                DisplayStatus = "test",
                Message = "test"
            };

            var inputAvailabilitySet = new AvailabilitySet
            {
                Location = location,
                Name = TestUtilities.GenerateName("asnondefault"),
                Tags = new Dictionary<string, string>()
                    {
                        {"RG", "rg"},
                        {"testTag", "1"},
                    },
                PlatformFaultDomainCount = nonDefaultFD,
                PlatformUpdateDomainCount = nonDefaultUD,
                Statuses = new List<InstanceViewStatus>()
                {
                    testStatus
                }
            };

            var createOrUpdateResponse = computeClient.AvailabilitySets.CreateOrUpdate(
                resourceGroupName,
                inputAvailabilitySet);

            // This call will also delete the Availability Set
            ValidateResults(createOrUpdateResponse, inputAvailabilitySet, nonDefaultFD, nonDefaultUD);
        }
Beispiel #7
0
 /// <summary>
 /// Initializes a new instance of the DiskRestorePointReplicationStatus
 /// class.
 /// </summary>
 /// <param name="status">The resource status information.</param>
 /// <param name="completionPercent">Replication completion
 /// percentage.</param>
 public DiskRestorePointReplicationStatus(InstanceViewStatus status = default(InstanceViewStatus), int?completionPercent = default(int?))
 {
     Status            = status;
     CompletionPercent = completionPercent;
     CustomInit();
 }
Beispiel #8
0
 /// <summary>
 /// Initializes a new instance of the SubResourceWithColocationStatus
 /// class.
 /// </summary>
 /// <param name="id">Resource Id</param>
 /// <param name="colocationStatus">Describes colocation status of a
 /// resource in the Proximity Placement Group.</param>
 public SubResourceWithColocationStatus(string id = default(string), InstanceViewStatus colocationStatus = default(InstanceViewStatus))
     : base(id)
 {
     ColocationStatus = colocationStatus;
     CustomInit();
 }