示例#1
0
        public async Task Bind(AzureContext azureContext, TargetTreeView targetTreeView, MigrationTarget.VirtualMachine virtualMachine)
        {
            _AzureContext   = azureContext;
            _TargetTreeView = targetTreeView;
            _VirtualMachine = virtualMachine;

            txtTargetName.Text = _VirtualMachine.TargetName;

            if (_VirtualMachine.Source != null)
            {
                if (_VirtualMachine.Source.GetType() == typeof(Azure.Asm.VirtualMachine))
                {
                    Azure.Asm.VirtualMachine asmVirtualMachine = (Azure.Asm.VirtualMachine)_VirtualMachine.Source;

                    lblRoleSize.Text = asmVirtualMachine.RoleSize;
                    lblOS.Text       = asmVirtualMachine.OSVirtualHardDiskOS;
                }
                else if (_VirtualMachine.Source.GetType() == typeof(Azure.Arm.VirtualMachine))
                {
                    Azure.Arm.VirtualMachine armVirtualMachine = (Azure.Arm.VirtualMachine)_VirtualMachine.Source;

                    lblRoleSize.Text = armVirtualMachine.VmSize;
                    lblOS.Text       = armVirtualMachine.OSVirtualHardDiskOS;
                }
            }

            if (_VirtualMachine.OSVirtualHardDisk != null)
            {
                this.diskProperties1.Bind(azureContext, _TargetTreeView, _VirtualMachine.OSVirtualHardDisk);
            }
            else
            {
                this.diskProperties1.Visible = false;
            }
        }
        public async Task Bind(TreeNode armVirtualMachineNode, AsmToArm asmToArmForm)
        {
            _VirtualMachineNode = armVirtualMachineNode;
            _AsmToArmForm       = asmToArmForm;

            TreeNode asmTreeNode = (TreeNode)_VirtualMachineNode.Tag;

            if (asmTreeNode.Tag.GetType() == typeof(Azure.Asm.VirtualMachine))
            {
                Azure.Asm.VirtualMachine asmVirtualMachine = (Azure.Asm.VirtualMachine)asmTreeNode.Tag;

                lblRoleSize.Text           = asmVirtualMachine.RoleSize;
                lblOS.Text                 = asmVirtualMachine.OSVirtualHardDiskOS;
                lblVirtualNetworkName.Text = asmVirtualMachine.VirtualNetworkName;
                lblSubnetName.Text         = asmVirtualMachine.SubnetName;
                lblStaticIpAddress.Text    = asmVirtualMachine.StaticVirtualNetworkIPAddress;
                txtARMVMName.Text          = asmVirtualMachine.TargetName;

                this.diskProperties1.Bind(asmToArmForm, asmVirtualMachine.OSVirtualHardDisk);

                try
                {
                    List <Azure.Arm.VirtualNetwork> a = await _AsmToArmForm.AzureContextTargetARM.AzureRetriever.GetAzureARMVirtualNetworks();

                    rbExistingARMVNet.Enabled = a.Count() > 0;
                }
                catch (Exception exc)
                {
                    _AsmToArmForm.LogProvider.WriteLog("VirtualMachineProperties.Bind", exc.Message);
                    rbExistingARMVNet.Enabled = false;
                }

                if ((asmVirtualMachine.TargetSubnet == null) ||
                    (asmVirtualMachine.TargetSubnet.GetType() == typeof(Azure.Asm.Subnet)) ||
                    (rbExistingARMVNet.Enabled == false))
                {
                    rbVNetInMigration.Checked = true;
                }
                else
                {
                    rbExistingARMVNet.Checked = true;
                }
            }
            else if (asmTreeNode.Tag.GetType() == typeof(Azure.Arm.VirtualMachine))
            {
                Azure.Arm.VirtualMachine armVirtualMachine = (Azure.Arm.VirtualMachine)asmTreeNode.Tag;

                lblRoleSize.Text = armVirtualMachine.VmSize;
                //lblOS.Text = armVirtualMachine.OSVirtualHardDiskOS;
                if (armVirtualMachine.VirtualNetwork != null)
                {
                    lblVirtualNetworkName.Text = armVirtualMachine.VirtualNetwork.Name;
                }
                //lblSubnetName.Text = armVirtualMachine.SubnetName;
                //lblStaticIpAddress.Text = armVirtualMachine.StaticVirtualNetworkIPAddress;
                txtARMVMName.Text = armVirtualMachine.TargetName;
            }
        }
示例#3
0
 private void treeSource_BeforeCheck(object sender, TreeViewCancelEventArgs e)
 {
     if (e.Node.Tag != null)
     {
         if (e.Node.Tag.GetType() == typeof(Azure.Arm.VirtualMachine))
         {
             Azure.Arm.VirtualMachine armVirtualMachine = (Azure.Arm.VirtualMachine)e.Node.Tag;
             if (armVirtualMachine.OSVirtualHardDisk.VhdUri == String.Empty)
             {
                 LogProvider.WriteLog("treeSource_BeforeCheck", "VM '" + armVirtualMachine.Name + "' contains one or more mananged disks which is not yet supported.");
                 e.Cancel = true;
             }
         }
     }
 }
        private async void rbExistingARMVNet_CheckedChanged(object sender, EventArgs e)
        {
            TreeNode asmTreeNode = (TreeNode)_VirtualMachineNode.Tag;

            if (asmTreeNode.Tag.GetType() == typeof(Azure.Asm.VirtualMachine))
            {
                Azure.Asm.VirtualMachine asmVirtualMachine = (Azure.Asm.VirtualMachine)asmTreeNode.Tag;
                RadioButton rb = (RadioButton)sender;

                if (rb.Checked)
                {
                    cmbExistingArmVNets.Items.Clear();
                    cmbExistingArmSubnet.Items.Clear();

                    foreach (Azure.Arm.VirtualNetwork armVirtualNetwork in await _AsmToArmForm.AzureContextTargetARM.AzureRetriever.GetAzureARMVirtualNetworks())
                    {
                        if (armVirtualNetwork.HasNonGatewaySubnet)
                        {
                            cmbExistingArmVNets.Items.Add(armVirtualNetwork);
                        }
                    }

                    if (asmVirtualMachine.TargetVirtualNetwork != null)
                    {
                        // Attempt to match target to list items
                        foreach (Azure.Arm.VirtualNetwork listVirtualNetwork in cmbExistingArmVNets.Items)
                        {
                            if (listVirtualNetwork.Id == asmVirtualMachine.TargetVirtualNetwork.Id)
                            {
                                cmbExistingArmVNets.SelectedItem = listVirtualNetwork;
                            }
                        }
                    }
                }
            }
            else if (asmTreeNode.Tag.GetType() == typeof(Azure.Arm.VirtualMachine))
            {
                Azure.Arm.VirtualMachine asmVirtualMachine = (Azure.Arm.VirtualMachine)asmTreeNode.Tag;
            }

            await PropertyChanged();
        }
        private void txtARMVMName_TextChanged(object sender, EventArgs e)
        {
            TreeNode asmTreeNode = (TreeNode)_VirtualMachineNode.Tag;

            if (asmTreeNode.Tag.GetType() == typeof(Azure.Asm.VirtualMachine))
            {
                Azure.Asm.VirtualMachine asmVirtualMachine = (Azure.Asm.VirtualMachine)asmTreeNode.Tag;

                asmVirtualMachine.TargetName = txtARMVMName.Text;
                _VirtualMachineNode.Text     = asmVirtualMachine.TargetName;
            }
            else if (asmTreeNode.Tag.GetType() == typeof(Azure.Arm.VirtualMachine))
            {
                Azure.Arm.VirtualMachine asmVirtualMachine = (Azure.Arm.VirtualMachine)asmTreeNode.Tag;

                asmVirtualMachine.TargetName = txtARMVMName.Text;
                _VirtualMachineNode.Text     = asmVirtualMachine.TargetName;
            }

            PropertyChanged();
        }
        private void cmbExistingArmSubnet_SelectedIndexChanged(object sender, EventArgs e)
        {
            TreeNode asmTreeNode = (TreeNode)_VirtualMachineNode.Tag;

            if (asmTreeNode.Tag.GetType() == typeof(Azure.Asm.VirtualMachine))
            {
                Azure.Asm.VirtualMachine asmVirtualMachine = (Azure.Asm.VirtualMachine)asmTreeNode.Tag;
                ComboBox cmbSender = (ComboBox)sender;

                if (cmbSender.SelectedItem == null)
                {
                    asmVirtualMachine.TargetVirtualNetwork = null;
                    asmVirtualMachine.TargetSubnet         = null;
                }
                else
                {
                    if (cmbSender.SelectedItem.GetType() == typeof(Azure.Asm.Subnet))
                    {
                        Azure.Asm.Subnet asmSubnet = (Azure.Asm.Subnet)cmbSender.SelectedItem;
                        asmVirtualMachine.TargetVirtualNetwork = asmSubnet.Parent;
                        asmVirtualMachine.TargetSubnet         = asmSubnet;
                    }
                    else if (cmbSender.SelectedItem.GetType() == typeof(Azure.Arm.Subnet))
                    {
                        Azure.Arm.Subnet armSubnet = (Azure.Arm.Subnet)cmbSender.SelectedItem;
                        asmVirtualMachine.TargetVirtualNetwork = armSubnet.Parent;
                        asmVirtualMachine.TargetSubnet         = armSubnet;
                    }
                }
            }
            else if (asmTreeNode.Tag.GetType() == typeof(Azure.Arm.VirtualMachine))
            {
                Azure.Arm.VirtualMachine asmVirtualMachine = (Azure.Arm.VirtualMachine)asmTreeNode.Tag;
            }

            PropertyChanged();
        }
示例#7
0
        private async Task <TreeNode> AddASMNodeToARMTree(TreeNode asmTreeNode)
        {
            TreeNode targetResourceGroupNode = SeekARMChildTreeNode(treeTargetARM.Nodes, _TargetResourceGroup.Name, _TargetResourceGroup.Name, _TargetResourceGroup, true);

            Type tagType = asmTreeNode.Tag.GetType();

            if (tagType == typeof(Azure.Asm.VirtualNetwork))
            {
                Azure.Asm.VirtualNetwork asmVirtualNetwork = (Azure.Asm.VirtualNetwork)asmTreeNode.Tag;
                TreeNode virtualNetworksNode = SeekARMChildTreeNode(targetResourceGroupNode.Nodes, "Virtual Networks", "Virtual Networks", "Virtual Networks", true);
                TreeNode virtualNetworkNode  = SeekARMChildTreeNode(virtualNetworksNode.Nodes, asmTreeNode.Name, asmVirtualNetwork.GetFinalTargetName(), asmTreeNode, true);

                foreach (Azure.Asm.Subnet asmSubnet in asmVirtualNetwork.Subnets)
                {
                    // Property dialog not made available for Gateway Subnet
                    if (!asmSubnet.IsGatewaySubnet)
                    {
                        TreeNode subnetNode = SeekARMChildTreeNode(virtualNetworkNode.Nodes, asmSubnet.Name, asmSubnet.Name, asmSubnet, true);
                    }
                }

                targetResourceGroupNode.ExpandAll();
                return(virtualNetworkNode);
            }
            else if (tagType == typeof(Azure.Asm.StorageAccount))
            {
                Azure.Asm.StorageAccount asmStorageAccount = (Azure.Asm.StorageAccount)asmTreeNode.Tag;

                TreeNode storageAccountsNode = SeekARMChildTreeNode(targetResourceGroupNode.Nodes, "Storage Accounts", "Storage Accounts", "Storage Accounts", true);
                TreeNode storageAccountNode  = SeekARMChildTreeNode(storageAccountsNode.Nodes, asmTreeNode.Name, asmStorageAccount.GetFinalTargetName(), asmTreeNode, true);

                targetResourceGroupNode.ExpandAll();
                return(storageAccountNode);
            }
            else if (tagType == typeof(Azure.Asm.VirtualMachine))
            {
                Azure.Asm.VirtualMachine asmVirtualMachine = (Azure.Asm.VirtualMachine)asmTreeNode.Tag;
                TreeNode availabilitySets   = SeekARMChildTreeNode(targetResourceGroupNode.Nodes, "Availability Sets", "Availability Sets", "Availability Sets", true);
                TreeNode availabilitySet    = SeekARMChildTreeNode(availabilitySets.Nodes, asmVirtualMachine.TargetAvailabilitySet.TargetName, asmVirtualMachine.TargetAvailabilitySet.GetFinalTargetName(), asmVirtualMachine.TargetAvailabilitySet, true);
                TreeNode virtualMachineNode = SeekARMChildTreeNode(availabilitySet.Nodes, asmVirtualMachine.RoleName, asmVirtualMachine.RoleName, asmTreeNode, true);

                foreach (Azure.Asm.Disk asmDataDisk in asmVirtualMachine.DataDisks)
                {
                    TreeNode dataDiskNode = SeekARMChildTreeNode(virtualMachineNode.Nodes, asmDataDisk.DiskName, asmDataDisk.DiskName, asmDataDisk, true);
                }

                foreach (Azure.Asm.NetworkInterface asmNetworkInterface in asmVirtualMachine.NetworkInterfaces)
                {
                    TreeNode dataDiskNode = SeekARMChildTreeNode(virtualMachineNode.Nodes, asmNetworkInterface.Name, asmNetworkInterface.Name, asmNetworkInterface, true);
                }

                targetResourceGroupNode.ExpandAll();
                return(virtualMachineNode);
            }
            else if (tagType == typeof(Azure.Asm.NetworkSecurityGroup))
            {
                Azure.Asm.NetworkSecurityGroup asmNetworkSecurityGroup = (Azure.Asm.NetworkSecurityGroup)asmTreeNode.Tag;
                TreeNode networkSecurityGroups    = SeekARMChildTreeNode(targetResourceGroupNode.Nodes, "Network Security Groups", "Network Security Groups", "Network Security Groups", true);
                TreeNode networkSecurityGroupNode = SeekARMChildTreeNode(networkSecurityGroups.Nodes, asmNetworkSecurityGroup.Name, asmNetworkSecurityGroup.Name, asmTreeNode, true);

                targetResourceGroupNode.ExpandAll();
                return(networkSecurityGroupNode);
            }
            else if (tagType == typeof(Azure.Arm.VirtualNetwork))
            {
                Azure.Arm.VirtualNetwork armVirtualNetwork = (Azure.Arm.VirtualNetwork)asmTreeNode.Tag;
                TreeNode virtualNetworksNode = SeekARMChildTreeNode(targetResourceGroupNode.Nodes, "Virtual Networks", "Virtual Networks", "Virtual Networks", true);
                TreeNode virtualNetworkNode  = SeekARMChildTreeNode(virtualNetworksNode.Nodes, asmTreeNode.Name, armVirtualNetwork.GetFinalTargetName(), asmTreeNode, true);

                foreach (Azure.Arm.Subnet armSubnet in armVirtualNetwork.Subnets)
                {
                    // Property dialog not made available for Gateway Subnet
                    if (!armSubnet.IsGatewaySubnet)
                    {
                        TreeNode subnetNode = SeekARMChildTreeNode(virtualNetworkNode.Nodes, armSubnet.Name, armSubnet.Name, armSubnet, true);
                    }
                }

                targetResourceGroupNode.ExpandAll();
                return(virtualNetworkNode);
            }
            else if (tagType == typeof(Azure.Arm.StorageAccount))
            {
                Azure.Arm.StorageAccount armStorageAccount = (Azure.Arm.StorageAccount)asmTreeNode.Tag;

                TreeNode storageAccountsNode = SeekARMChildTreeNode(targetResourceGroupNode.Nodes, "Storage Accounts", "Storage Accounts", "Storage Accounts", true);
                TreeNode storageAccountNode  = SeekARMChildTreeNode(storageAccountsNode.Nodes, asmTreeNode.Name, armStorageAccount.GetFinalTargetName(), asmTreeNode, true);

                targetResourceGroupNode.ExpandAll();
                return(storageAccountNode);
            }
            else if (tagType == typeof(Azure.Arm.VirtualMachine))
            {
                Azure.Arm.VirtualMachine armVirtualMachine = (Azure.Arm.VirtualMachine)asmTreeNode.Tag;

                TreeNode virtualMachineNode = null;
                if (armVirtualMachine.TargetAvailabilitySet != null)
                {
                    TreeNode availabilitySets = SeekARMChildTreeNode(targetResourceGroupNode.Nodes, "Availability Sets", "Availability Sets", "Availability Sets", true);
                    TreeNode availabilitySet  = SeekARMChildTreeNode(availabilitySets.Nodes, armVirtualMachine.TargetAvailabilitySet.TargetName, armVirtualMachine.TargetAvailabilitySet.GetFinalTargetName(), armVirtualMachine.TargetAvailabilitySet, true);
                    virtualMachineNode = SeekARMChildTreeNode(availabilitySet.Nodes, armVirtualMachine.Name, armVirtualMachine.Name, asmTreeNode, true);
                }
                else
                {
                    virtualMachineNode = SeekARMChildTreeNode(targetResourceGroupNode.Nodes, armVirtualMachine.Name, armVirtualMachine.Name, asmTreeNode, true);
                }



                foreach (Azure.Arm.Disk armDataDisk in armVirtualMachine.DataDisks)
                {
                    TreeNode dataDiskNode = SeekARMChildTreeNode(virtualMachineNode.Nodes, armDataDisk.Name, armDataDisk.Name, armDataDisk, true);
                }

                foreach (Azure.Arm.NetworkInterfaceCard asmNetworkInterface in armVirtualMachine.NetworkInterfaces)
                {
                    TreeNode dataDiskNode = SeekARMChildTreeNode(virtualMachineNode.Nodes, asmNetworkInterface.Name, asmNetworkInterface.Name, asmNetworkInterface, true);
                }

                targetResourceGroupNode.ExpandAll();
                return(virtualMachineNode);
            }
            else if (tagType == typeof(Azure.Arm.NetworkSecurityGroup))
            {
                Azure.Arm.NetworkSecurityGroup armNetworkSecurityGroup = (Azure.Arm.NetworkSecurityGroup)asmTreeNode.Tag;
                TreeNode networkSecurityGroups    = SeekARMChildTreeNode(targetResourceGroupNode.Nodes, "Network Security Groups", "Network Security Groups", "Network Security Groups", true);
                TreeNode networkSecurityGroupNode = SeekARMChildTreeNode(networkSecurityGroups.Nodes, armNetworkSecurityGroup.Name, armNetworkSecurityGroup.Name, asmTreeNode, true);

                targetResourceGroupNode.ExpandAll();
                return(networkSecurityGroupNode);
            }
            else
            {
                throw new Exception("Unhandled Node Type in AddASMNodeToARMTree: " + tagType);
            }
        }
示例#8
0
        public async Task Bind(AzureContext azureContext, TargetTreeView targetTreeView, MigrationTarget.VirtualMachine virtualMachine)
        {
            _AzureContext   = azureContext;
            _TargetTreeView = targetTreeView;
            _VirtualMachine = virtualMachine;

            txtTargetName.Text = _VirtualMachine.TargetName;

            if (_VirtualMachine.Source != null)
            {
                if (_VirtualMachine.Source.GetType() == typeof(Azure.Asm.VirtualMachine))
                {
                    Azure.Asm.VirtualMachine asmVirtualMachine = (Azure.Asm.VirtualMachine)_VirtualMachine.Source;

                    if (asmVirtualMachine.RoleSize != null)
                    {
                        lblRoleSize.Text           = asmVirtualMachine.RoleSize.Name;
                        lblSourceCPUCores.Text     = asmVirtualMachine.RoleSize.Cores.ToString();
                        lblSourceMemoryInGb.Text   = ((double)asmVirtualMachine.RoleSize.MemoryInMb / 1024).ToString();
                        lblSourceMaxDataDisks.Text = asmVirtualMachine.RoleSize.MaxDataDiskCount.ToString();
                    }

                    lblOS.Text = asmVirtualMachine.OSVirtualHardDiskOS;
                }
                else if (_VirtualMachine.Source.GetType() == typeof(Azure.Arm.VirtualMachine))
                {
                    Azure.Arm.VirtualMachine armVirtualMachine = (Azure.Arm.VirtualMachine)_VirtualMachine.Source;

                    if (armVirtualMachine.VmSize != null)
                    {
                        lblRoleSize.Text           = armVirtualMachine.VmSize.ToString();
                        lblSourceCPUCores.Text     = armVirtualMachine.VmSize.NumberOfCores.ToString();
                        lblSourceMemoryInGb.Text   = ((double)armVirtualMachine.VmSize.memoryInMB / 1024).ToString();
                        lblSourceMaxDataDisks.Text = armVirtualMachine.VmSize.maxDataDiskCount.ToString();
                    }

                    lblOS.Text = armVirtualMachine.OSVirtualHardDiskOS;
                }
            }

            if (_VirtualMachine.OSVirtualHardDisk != null)
            {
                this.diskProperties1.Bind(azureContext, _TargetTreeView, _VirtualMachine.OSVirtualHardDisk);
            }
            else
            {
                this.diskProperties1.Visible = false;
            }

            cbRoleSizes.Items.Clear();
            if (targetTreeView.TargetResourceGroup != null && targetTreeView.TargetResourceGroup.TargetLocation != null)
            {
                cbRoleSizes.Enabled = true;
                cbRoleSizes.Visible = true;
                lblTargetLocationRequired.Enabled = false;
                lblTargetLocationRequired.Visible = false;

                if (targetTreeView.TargetResourceGroup.TargetLocation.VMSizes != null)
                {
                    foreach (Arm.VMSize vmSize in targetTreeView.TargetResourceGroup.TargetLocation.VMSizes)
                    {
                        cbRoleSizes.Items.Add(vmSize);
                    }
                }

                if (_VirtualMachine.TargetSize != null)
                {
                    int sizeIndex = cbRoleSizes.FindStringExact(_VirtualMachine.TargetSize.ToString());
                    cbRoleSizes.SelectedIndex = sizeIndex;
                }
            }
            else
            {
                cbRoleSizes.Enabled = false;
                cbRoleSizes.Visible = false;
                lblTargetLocationRequired.Enabled = true;
                lblTargetLocationRequired.Visible = true;
            }
        }
        public async Task Bind(AzureContext azureContext, TargetTreeView targetTreeView, MigrationTarget.VirtualMachine virtualMachine)
        {
            _AzureContext   = azureContext;
            _TargetTreeView = targetTreeView;
            _VirtualMachine = virtualMachine;

            txtTargetName.Text = _VirtualMachine.TargetName;

            if (_VirtualMachine.Source != null)
            {
                if (_VirtualMachine.Source.GetType() == typeof(Azure.Asm.VirtualMachine))
                {
                    Azure.Asm.VirtualMachine asmVirtualMachine = (Azure.Asm.VirtualMachine)_VirtualMachine.Source;

                    if (asmVirtualMachine.RoleSize != null)
                    {
                        lblRoleSize.Text           = asmVirtualMachine.RoleSize.Name;
                        lblSourceCPUCores.Text     = asmVirtualMachine.RoleSize.Cores.ToString();
                        lblSourceMemoryInGb.Text   = ((double)asmVirtualMachine.RoleSize.MemoryInMb / 1024).ToString();
                        lblSourceMaxDataDisks.Text = asmVirtualMachine.RoleSize.MaxDataDiskCount.ToString();
                    }

                    lblOS.Text = asmVirtualMachine.OSVirtualHardDiskOS;
                }
                else if (_VirtualMachine.Source.GetType() == typeof(Azure.Arm.VirtualMachine))
                {
                    Azure.Arm.VirtualMachine armVirtualMachine = (Azure.Arm.VirtualMachine)_VirtualMachine.Source;

                    if (armVirtualMachine.VmSize != null)
                    {
                        lblRoleSize.Text           = armVirtualMachine.VmSize.ToString();
                        lblSourceCPUCores.Text     = armVirtualMachine.VmSize.NumberOfCores.ToString();
                        lblSourceMemoryInGb.Text   = ((double)armVirtualMachine.VmSize.memoryInMB / 1024).ToString();
                        lblSourceMaxDataDisks.Text = armVirtualMachine.VmSize.maxDataDiskCount.ToString();
                    }

                    lblOS.Text = armVirtualMachine.OSVirtualHardDiskOS;
                }
            }

            cbRoleSizes.Items.Clear();
            if (targetTreeView.TargetResourceGroup != null && targetTreeView.TargetResourceGroup.TargetLocation != null)
            {
                cbRoleSizes.Enabled = true;
                cbRoleSizes.Visible = true;
                lblTargetLocationRequired.Enabled = false;
                lblTargetLocationRequired.Visible = false;

                if (targetTreeView.TargetResourceGroup.TargetLocation.VMSizes != null)
                {
                    foreach (Arm.VMSize vmSize in targetTreeView.TargetResourceGroup.TargetLocation.VMSizes)
                    {
                        if (vmSize.IsStorageTypeSupported(_VirtualMachine.OSVirtualHardDisk.StorageAccountType))
                        {
                            cbRoleSizes.Items.Add(vmSize);
                        }
                    }
                }

                if (_VirtualMachine.TargetSize != null)
                {
                    int sizeIndex = cbRoleSizes.FindStringExact(_VirtualMachine.TargetSize.ToString());
                    cbRoleSizes.SelectedIndex = sizeIndex;
                }
            }
            else
            {
                cbRoleSizes.Enabled = false;
                cbRoleSizes.Visible = false;
                lblTargetLocationRequired.Enabled = true;
                lblTargetLocationRequired.Visible = true;
            }

            availabilitySetSummary.Bind(virtualMachine.TargetAvailabilitySet, _TargetTreeView);
            osDiskSummary.Bind(virtualMachine.OSVirtualHardDisk, _TargetTreeView);
            primaryNICSummary.Bind(virtualMachine.PrimaryNetworkInterface, _TargetTreeView);

            foreach (Azure.MigrationTarget.Disk targetDisk in virtualMachine.DataDisks)
            {
                AddResourceSummary(new ResourceSummary(targetDisk, targetTreeView));
            }
            foreach (Azure.MigrationTarget.NetworkInterface targetNIC in virtualMachine.NetworkInterfaces)
            {
                if (!targetNIC.IsPrimary)
                {
                    AddResourceSummary(new ResourceSummary(targetNIC, targetTreeView));
                }
            }

            label15.Visible = pictureBox1.Controls.Count > 0;
        }
示例#10
0
        private async void rbVNetInMigration_CheckedChanged(object sender, EventArgs e)
        {
            TreeNode asmTreeNode = (TreeNode)_VirtualMachineNode.Tag;

            if (asmTreeNode.Tag.GetType() == typeof(Azure.Asm.VirtualMachine) || asmTreeNode.Tag.GetType() == typeof(Azure.Arm.VirtualMachine))
            {
                RadioButton rb = (RadioButton)sender;

                if (rb.Checked)
                {
                    cmbExistingArmVNets.Items.Clear();
                    cmbExistingArmSubnet.Items.Clear();

                    TreeNode targetResourceGroupNode = _AsmToArmForm.SeekARMChildTreeNode(_AsmToArmForm.TargetResourceGroup.Name, _AsmToArmForm.TargetResourceGroup.GetFinalTargetName(), _AsmToArmForm.TargetResourceGroup, false);
                    TreeNode virtualNetworksNode     = _AsmToArmForm.SeekARMChildTreeNode(targetResourceGroupNode.Nodes, "Virtual Networks", "Virtual Networks", "Virtual Networks", false);

                    if (virtualNetworksNode != null)
                    {
                        foreach (TreeNode asmVirtualNetworkNode in virtualNetworksNode.Nodes)
                        {
                            TreeNode asmVirtualNetworkAsmParentNode = (TreeNode)asmVirtualNetworkNode.Tag;

                            if (asmVirtualNetworkAsmParentNode.Tag.GetType() == typeof(Azure.Asm.VirtualNetwork))
                            {
                                if (((Azure.Asm.VirtualNetwork)asmVirtualNetworkAsmParentNode.Tag).HasNonGatewaySubnet)
                                {
                                    cmbExistingArmVNets.Items.Add(asmVirtualNetworkAsmParentNode.Tag);
                                }
                            }
                            else if (asmVirtualNetworkAsmParentNode.Tag.GetType() == typeof(Azure.Arm.VirtualNetwork))
                            {
                                if (((Azure.Arm.VirtualNetwork)asmVirtualNetworkAsmParentNode.Tag).HasNonGatewaySubnet)
                                {
                                    cmbExistingArmVNets.Items.Add(asmVirtualNetworkAsmParentNode.Tag);
                                }
                            }
                        }
                    }

                    if (asmTreeNode.Tag.GetType() == typeof(Azure.Asm.VirtualMachine))
                    {
                        Azure.Asm.VirtualMachine asmVirtualMachine = (Azure.Asm.VirtualMachine)asmTreeNode.Tag;
                        if (asmVirtualMachine.TargetVirtualNetwork != null)
                        {
                            // Attempt to match target to list items
                            foreach (Azure.Asm.VirtualNetwork listVirtualNetwork in cmbExistingArmVNets.Items)
                            {
                                if (listVirtualNetwork.Id == asmVirtualMachine.TargetVirtualNetwork.Id)
                                {
                                    cmbExistingArmVNets.SelectedItem = listVirtualNetwork;
                                }
                            }

                            if (cmbExistingArmVNets.SelectedItem != null && asmVirtualMachine.TargetSubnet != null)
                            {
                                foreach (Azure.Asm.Subnet listSubnet in cmbExistingArmSubnet.Items)
                                {
                                    if (listSubnet.Id == asmVirtualMachine.TargetSubnet.Id)
                                    {
                                        cmbExistingArmSubnet.SelectedItem = listSubnet;
                                    }
                                }
                            }
                        }
                    }
                }
            }
            else if (asmTreeNode.Tag.GetType() == typeof(Azure.Arm.VirtualMachine))
            {
                Azure.Arm.VirtualMachine asmVirtualMachine = (Azure.Arm.VirtualMachine)asmTreeNode.Tag;
            }

            await PropertyChanged();
        }
示例#11
0
        private async void cmbExistingArmVNets_SelectedIndexChanged(object sender, EventArgs e)
        {
            TreeNode asmTreeNode = (TreeNode)_VirtualMachineNode.Tag;

            if (asmTreeNode.Tag.GetType() == typeof(Azure.Asm.VirtualMachine))
            {
                Azure.Asm.VirtualMachine asmVirtualMachine = (Azure.Asm.VirtualMachine)asmTreeNode.Tag;

                cmbExistingArmSubnet.Items.Clear();

                if (rbVNetInMigration.Checked)
                {
                    Azure.Asm.VirtualNetwork selectedAsmVirtualNetwork = (Azure.Asm.VirtualNetwork)cmbExistingArmVNets.SelectedItem;

                    foreach (Azure.Asm.Subnet asmSubnet in selectedAsmVirtualNetwork.Subnets)
                    {
                        if (asmSubnet.Name != ArmConst.GatewaySubnetName)
                        {
                            cmbExistingArmSubnet.Items.Add(asmSubnet);
                        }
                    }

                    if (asmVirtualMachine.TargetSubnet != null)
                    {
                        foreach (Azure.Asm.Subnet listSubnet in cmbExistingArmSubnet.Items)
                        {
                            if (listSubnet.Id == asmVirtualMachine.TargetSubnet.Id)
                            {
                                cmbExistingArmSubnet.SelectedItem = listSubnet;
                            }
                        }
                    }
                }
                else
                {
                    Azure.Arm.VirtualNetwork selectedArmVirtualNetwork = (Azure.Arm.VirtualNetwork)cmbExistingArmVNets.SelectedItem;

                    foreach (Azure.Arm.Subnet armSubnet in selectedArmVirtualNetwork.Subnets)
                    {
                        if (armSubnet.Name != ArmConst.GatewaySubnetName)
                        {
                            cmbExistingArmSubnet.Items.Add(armSubnet);
                        }
                    }

                    if (asmVirtualMachine.TargetSubnet != null)
                    {
                        foreach (Azure.Arm.Subnet listSubnet in cmbExistingArmSubnet.Items)
                        {
                            if (listSubnet.Id == asmVirtualMachine.TargetSubnet.Id)
                            {
                                cmbExistingArmSubnet.SelectedItem = listSubnet;
                            }
                        }
                    }
                }
            }
            else if (asmTreeNode.Tag.GetType() == typeof(Azure.Arm.VirtualMachine))
            {
                Azure.Arm.VirtualMachine armVirtualMachine = (Azure.Arm.VirtualMachine)asmTreeNode.Tag;
                cmbExistingArmSubnet.Items.Clear();

                if (rbVNetInMigration.Checked)
                {
                    Azure.Arm.VirtualNetwork selectedArmVirtualNetwork = (Azure.Arm.VirtualNetwork)cmbExistingArmVNets.SelectedItem;

                    foreach (Azure.Arm.Subnet armSubnet in selectedArmVirtualNetwork.Subnets)
                    {
                        if (armSubnet.Name != ArmConst.GatewaySubnetName)
                        {
                            cmbExistingArmSubnet.Items.Add(armSubnet);
                        }
                    }

                    if (armVirtualMachine.TargetSubnet != null)
                    {
                        foreach (Azure.Arm.Subnet listSubnet in cmbExistingArmSubnet.Items)
                        {
                            if (listSubnet.Id == armVirtualMachine.TargetSubnet.Id)
                            {
                                cmbExistingArmSubnet.SelectedItem = listSubnet;
                            }
                        }
                    }
                }
            }

            await PropertyChanged();
        }
示例#12
0
        private async Task AsmSelectDependencies(TreeNode selectedNode)
        {
            if (this.AutoSelectDependencies && (selectedNode.Checked) && (selectedNode.Tag != null))
            {
                if (selectedNode.Tag.GetType() == typeof(Azure.MigrationTarget.AvailabilitySet))
                {
                    Azure.MigrationTarget.AvailabilitySet targetAvailabilitySet = (Azure.MigrationTarget.AvailabilitySet)selectedNode.Tag;

                    foreach (Azure.MigrationTarget.VirtualMachine targetVirtualMachine in targetAvailabilitySet.TargetVirtualMachines)
                    {
                        foreach (TreeNode treeNode in selectedNode.TreeView.Nodes.Find(targetVirtualMachine.TargetName, true))
                        {
                            if ((treeNode.Tag != null) && (treeNode.Tag.GetType() == typeof(Azure.MigrationTarget.VirtualMachine)))
                            {
                                if (!treeNode.Checked)
                                {
                                    treeNode.Checked = true;
                                }
                            }
                        }
                    }
                }
                if (selectedNode.Tag.GetType() == typeof(Azure.MigrationTarget.VirtualMachine))
                {
                    Azure.MigrationTarget.VirtualMachine targetVirtualMachine = (Azure.MigrationTarget.VirtualMachine)selectedNode.Tag;

                    if (targetVirtualMachine.Source != null)
                    {
                        if (targetVirtualMachine.Source.GetType() == typeof(Azure.Arm.VirtualMachine))
                        {
                            Azure.Arm.VirtualMachine armVirtualMachine = (Azure.Arm.VirtualMachine)targetVirtualMachine.Source;

                            #region process virtual network

                            // This source code to auto select the Virtual Network as a Parent node has been commented out purposefully.
                            // It was observed through use of MigAz that users were not aware that "including the Virtual Network" in multiple
                            // migrations was actually creating new / independent / non-connected versions of the same Virtual Network.
                            // It is valid that the user would want to migrate the Virtual Network during the first run migration; however, beyond
                            // that first pass (the Azure ARM Virtual Network exists) the user is more likely to need to migrate the Virtual Machine(s)
                            // into an existing Azure Virtual Network.  In order to guide the user in this direction, we do not want to auto select the
                            // source Virtual Network to be included in the Migration Template as a new Virtual Network.  We want the user to explicitly
                            // select and include the source Azure Virtual Network into the Migration Template (if they want to include it), or utilize
                            // the built in property editor dialogs to "select an existing Virtual Network and Subnet".

                            //foreach (Azure.Arm.NetworkInterface networkInterface in armVirtualMachine.NetworkInterfaces)
                            //{
                            //    foreach (Azure.Arm.NetworkInterfaceIpConfiguration ipConfiguration in networkInterface.NetworkInterfaceIpConfigurations)
                            //    {
                            //        if (ipConfiguration.VirtualNetwork != null)
                            //        {
                            //            foreach (TreeNode treeNode in selectedNode.TreeView.Nodes.Find(ipConfiguration.VirtualNetwork.Name, true))
                            //            {
                            //                if ((treeNode.Tag != null) && (treeNode.Tag.GetType() == typeof(Azure.MigrationTarget.VirtualNetwork)))
                            //                {
                            //                    if (!treeNode.Checked)
                            //                        treeNode.Checked = true;
                            //                }
                            //            }
                            //        }
                            //    }
                            //}

                            #endregion

                            #region process managed disks

                            if (armVirtualMachine.OSVirtualHardDisk.GetType() == typeof(Azure.Arm.ManagedDisk))
                            {
                                foreach (TreeNode treeNode in selectedNode.TreeView.Nodes.Find(((Azure.Arm.ManagedDisk)armVirtualMachine.OSVirtualHardDisk).Name, true))
                                {
                                    if ((treeNode.Tag != null) && (treeNode.Tag.GetType() == typeof(Azure.MigrationTarget.Disk)))
                                    {
                                        if (!treeNode.Checked)
                                        {
                                            treeNode.Checked = true;
                                        }
                                    }
                                }
                            }

                            foreach (Azure.Interface.IArmDisk dataDisk in armVirtualMachine.DataDisks)
                            {
                                if (dataDisk.GetType() == typeof(Azure.Arm.ManagedDisk))
                                {
                                    Azure.Arm.ManagedDisk managedDisk = (Azure.Arm.ManagedDisk)dataDisk;

                                    foreach (TreeNode treeNode in selectedNode.TreeView.Nodes.Find(managedDisk.Name, true))
                                    {
                                        if ((treeNode.Tag != null) && (treeNode.Tag.GetType() == typeof(Azure.MigrationTarget.Disk)))
                                        {
                                            if (!treeNode.Checked)
                                            {
                                                treeNode.Checked = true;
                                            }
                                        }
                                    }
                                }
                            }

                            #endregion

                            #region OS Disk Storage Account

                            if (armVirtualMachine.OSVirtualHardDisk.GetType() == typeof(Azure.Arm.ClassicDisk)) // Disk in a Storage Account, not a Managed Disk
                            {
                                foreach (TreeNode treeNode in selectedNode.TreeView.Nodes.Find(((Azure.Arm.ClassicDisk)armVirtualMachine.OSVirtualHardDisk).StorageAccountName, true))
                                {
                                    if ((treeNode.Tag != null) && (treeNode.Tag.GetType() == typeof(Azure.MigrationTarget.StorageAccount)))
                                    {
                                        if (!treeNode.Checked)
                                        {
                                            treeNode.Checked = true;
                                        }
                                    }
                                }
                            }

                            #endregion

                            #region Data Disk(s) Storage Account(s)

                            foreach (IArmDisk dataDisk in armVirtualMachine.DataDisks)
                            {
                                if (dataDisk.GetType() == typeof(Azure.Arm.ClassicDisk))
                                {
                                    Azure.Arm.ClassicDisk classicDisk = (Azure.Arm.ClassicDisk)dataDisk;
                                    foreach (TreeNode treeNode in selectedNode.TreeView.Nodes.Find(classicDisk.StorageAccountName, true))
                                    {
                                        if ((treeNode.Tag != null) && (treeNode.Tag.GetType() == typeof(Azure.MigrationTarget.StorageAccount)))
                                        {
                                            if (!treeNode.Checked)
                                            {
                                                treeNode.Checked = true;
                                            }
                                        }
                                    }
                                }
                                else if (dataDisk.GetType() == typeof(Azure.Arm.ManagedDisk))
                                {
                                    Azure.Arm.ManagedDisk managedDisk = (Azure.Arm.ManagedDisk)dataDisk;
                                    foreach (TreeNode treeNode in selectedNode.TreeView.Nodes.Find(managedDisk.Name, true))
                                    {
                                        if ((treeNode.Tag != null) && (treeNode.Tag.GetType() == typeof(Azure.MigrationTarget.Disk)))
                                        {
                                            if (!treeNode.Checked)
                                            {
                                                treeNode.Checked = true;
                                            }
                                        }
                                    }
                                }
                            }

                            #endregion

                            #region Network Interface Card(s)

                            foreach (Azure.Arm.NetworkInterface networkInterface in armVirtualMachine.NetworkInterfaces)
                            {
                                foreach (TreeNode treeNode in selectedNode.TreeView.Nodes.Find(networkInterface.Name, true))
                                {
                                    if ((treeNode.Tag != null) && (treeNode.Tag.GetType() == typeof(Azure.MigrationTarget.NetworkInterface)))
                                    {
                                        if (!treeNode.Checked)
                                        {
                                            treeNode.Checked = true;
                                        }
                                    }
                                }

                                if (networkInterface.NetworkSecurityGroup != null)
                                {
                                    foreach (TreeNode treeNode in selectedNode.TreeView.Nodes.Find(networkInterface.NetworkSecurityGroup.Name, true))
                                    {
                                        if ((treeNode.Tag != null) && (treeNode.Tag.GetType() == typeof(Azure.MigrationTarget.NetworkSecurityGroup)))
                                        {
                                            if (!treeNode.Checked)
                                            {
                                                treeNode.Checked = true;
                                            }
                                        }
                                    }
                                }

                                foreach (Azure.Arm.NetworkInterfaceIpConfiguration ipConfiguration in networkInterface.NetworkInterfaceIpConfigurations)
                                {
                                    if (ipConfiguration.BackEndAddressPool != null && ipConfiguration.BackEndAddressPool.LoadBalancer != null)
                                    {
                                        foreach (TreeNode treeNode in selectedNode.TreeView.Nodes.Find(ipConfiguration.BackEndAddressPool.LoadBalancer.Name, true))
                                        {
                                            if ((treeNode.Tag != null) && (treeNode.Tag.GetType() == typeof(Azure.MigrationTarget.LoadBalancer)))
                                            {
                                                if (!treeNode.Checked)
                                                {
                                                    treeNode.Checked = true;
                                                }
                                            }
                                        }
                                    }

                                    if (ipConfiguration.PublicIP != null)
                                    {
                                        foreach (TreeNode treeNode in selectedNode.TreeView.Nodes.Find(ipConfiguration.PublicIP.Name, true))
                                        {
                                            if ((treeNode.Tag != null) && (treeNode.Tag.GetType() == typeof(Azure.MigrationTarget.PublicIp)))
                                            {
                                                if (!treeNode.Checked)
                                                {
                                                    treeNode.Checked = true;
                                                }
                                            }
                                        }
                                    }
                                }
                            }

                            #endregion

                            #region Parent Availability Set

                            if (armVirtualMachine.AvailabilitySet != null)
                            {
                                foreach (TreeNode treeNode in selectedNode.TreeView.Nodes.Find(armVirtualMachine.AvailabilitySet.Name, true))
                                {
                                    if ((treeNode.Tag != null) && (treeNode.Tag.GetType() == typeof(Azure.MigrationTarget.AvailabilitySet)))
                                    {
                                        if (!treeNode.Checked)
                                        {
                                            treeNode.Checked = true;
                                        }
                                    }
                                }
                            }

                            #endregion
                        }
                    }
                }
                else if (selectedNode.Tag.GetType() == typeof(Azure.MigrationTarget.VirtualNetwork))
                {
                    Azure.MigrationTarget.VirtualNetwork targetVirtualNetwork = (Azure.MigrationTarget.VirtualNetwork)selectedNode.Tag;

                    foreach (Azure.MigrationTarget.Subnet targetSubnet in targetVirtualNetwork.TargetSubnets)
                    {
                        if (targetSubnet.NetworkSecurityGroup != null)
                        {
                            if (targetSubnet.NetworkSecurityGroup.SourceNetworkSecurityGroup != null)
                            {
                                if (targetSubnet.NetworkSecurityGroup.SourceNetworkSecurityGroup.GetType() == typeof(Azure.Arm.NetworkSecurityGroup))
                                {
                                    foreach (TreeNode treeNode in selectedNode.TreeView.Nodes.Find(targetSubnet.NetworkSecurityGroup.SourceName, true))
                                    {
                                        if ((treeNode.Tag != null) && (treeNode.Tag.GetType() == typeof(Azure.MigrationTarget.NetworkSecurityGroup)))
                                        {
                                            if (!treeNode.Checked)
                                            {
                                                treeNode.Checked = true;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                else if (selectedNode.Tag.GetType() == typeof(Azure.MigrationTarget.LoadBalancer))
                {
                    Azure.MigrationTarget.LoadBalancer targetLoadBalancer = (Azure.MigrationTarget.LoadBalancer)selectedNode.Tag;

                    if (targetLoadBalancer.Source != null)
                    {
                        if (targetLoadBalancer.Source.GetType() == typeof(Azure.Arm.LoadBalancer))
                        {
                            Azure.Arm.LoadBalancer armLoadBalaner = (Azure.Arm.LoadBalancer)targetLoadBalancer.Source;

                            foreach (Azure.Arm.FrontEndIpConfiguration frontEndIpConfiguration in armLoadBalaner.FrontEndIpConfigurations)
                            {
                                if (frontEndIpConfiguration.PublicIP != null)
                                {
                                    foreach (TreeNode treeNode in selectedNode.TreeView.Nodes.Find(frontEndIpConfiguration.PublicIP.Name, true))
                                    {
                                        if ((treeNode.Tag != null) && (treeNode.Tag.GetType() == typeof(Azure.MigrationTarget.PublicIp)))
                                        {
                                            if (!treeNode.Checked)
                                            {
                                                treeNode.Checked = true;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }

                _StatusProvider.UpdateStatus("Ready");
            }
        }
示例#13
0
        private async Task AutoSelectDependencies(TreeNode selectedNode)
        {
            if ((app.Default.AutoSelectDependencies) && (selectedNode.Checked) && (selectedNode.Tag != null))
            {
                if (selectedNode.Tag.GetType() == typeof(Azure.Arm.VirtualMachine))
                {
                    Azure.Arm.VirtualMachine armVirtualMachine = (Azure.Arm.VirtualMachine)selectedNode.Tag;

                    #region process virtual network
                    if (armVirtualMachine.VirtualNetwork != null)
                    {
                        foreach (TreeNode treeNode in treeSource.Nodes.Find(armVirtualMachine.VirtualNetwork.Name, true))
                        {
                            if ((treeNode.Tag != null) && (treeNode.Tag.GetType() == typeof(Azure.Arm.VirtualNetwork)))
                            {
                                if (!treeNode.Checked)
                                {
                                    treeNode.Checked = true;
                                }
                            }
                        }
                    }

                    #endregion

                    #region OS Disk Storage Account

                    foreach (TreeNode treeNode in treeSource.Nodes.Find(armVirtualMachine.OSVirtualHardDisk.StorageAccountName, true))
                    {
                        if ((treeNode.Tag != null) && (treeNode.Tag.GetType() == typeof(Azure.Arm.StorageAccount)))
                        {
                            if (!treeNode.Checked)
                            {
                                treeNode.Checked = true;
                            }
                        }
                    }

                    #endregion

                    #region Data Disk(s) Storage Account(s)

                    foreach (Disk dataDisk in armVirtualMachine.DataDisks)
                    {
                        foreach (TreeNode treeNode in treeSource.Nodes.Find(dataDisk.StorageAccountName, true))
                        {
                            if ((treeNode.Tag != null) && (treeNode.Tag.GetType() == typeof(Azure.Arm.StorageAccount)))
                            {
                                if (!treeNode.Checked)
                                {
                                    treeNode.Checked = true;
                                }
                            }
                        }
                    }

                    #endregion

                    #region Network Security Group

                    if (armVirtualMachine.NetworkSecurityGroup != null)
                    {
                        foreach (TreeNode treeNode in treeSource.Nodes.Find(armVirtualMachine.NetworkSecurityGroup.Name, true))
                        {
                            if ((treeNode.Tag != null) && (treeNode.Tag.GetType() == typeof(Azure.Asm.NetworkSecurityGroup)))
                            {
                                if (!treeNode.Checked)
                                {
                                    treeNode.Checked = true;
                                }
                            }
                        }
                    }

                    #endregion
                }

                else if (selectedNode.Tag.GetType() == typeof(Azure.Arm.VirtualNetwork))
                {
                    Azure.Arm.VirtualNetwork armVirtualNetwork = (Azure.Arm.VirtualNetwork)selectedNode.Tag;

                    foreach (Azure.Arm.Subnet armSubnet in armVirtualNetwork.Subnets)
                    {
                        if (armSubnet.NetworkSecurityGroup != null)
                        {
                            foreach (TreeNode treeNode in treeSource.Nodes.Find(armSubnet.NetworkSecurityGroup.Name, true))
                            {
                                if ((treeNode.Tag != null) && (treeNode.Tag.GetType() == typeof(Azure.Arm.NetworkSecurityGroup)))
                                {
                                    if (!treeNode.Checked)
                                    {
                                        treeNode.Checked = true;
                                    }
                                }
                            }
                        }
                    }
                }
            }

            StatusProvider.UpdateStatus("Ready");
        }