public void Bind(AzureContext azureContext, AzureRetriever azureRetriever, List <AzureEnvironment> azureEnvironments, ref List <AzureEnvironment> userDefinedAzureEnvironments)
        {
            _AzureRetriever               = azureRetriever;
            _AzureEnvironments            = azureEnvironments;
            _UserDefinedAzureEnvironments = userDefinedAzureEnvironments;

            _AzureContext = azureContext;

            _AzureContext.AzureEnvironmentChanged      += _AzureContext_AzureEnvironmentChanged;
            _AzureContext.AfterAzureTenantChange       += _AzureContext_AfterAzureTenantChange;
            _AzureContext.UserAuthenticated            += _AzureContext_UserAuthenticated;
            _AzureContext.AfterUserSignOut             += _AzureContext_AfterUserSignOut;
            _AzureContext.AfterAzureSubscriptionChange += _AzureContext_AfterAzureSubscriptionChange;
        }
Example #2
0
        public static async Task <AzureStackEndpoints> LoadMetadataEndpoints(AzureRetriever azureRetriever, string azureStackAdminManagementUrl)
        {
            string metadataEndpointsUrlBase = azureStackAdminManagementUrl;

            if (!metadataEndpointsUrlBase.EndsWith("/"))
            {
                metadataEndpointsUrlBase += "/";
            }

            String metadataEndpointsUrl = metadataEndpointsUrlBase + "metadata/endpoints?api-version=2015-01-01";

            AzureRestRequest  azureRestRequest  = new AzureRestRequest(metadataEndpointsUrl);
            AzureRestResponse azureRestResponse = await azureRetriever.GetAzureRestResponse(azureRestRequest);

            return(new AzureStackEndpoints(metadataEndpointsUrlBase, azureRestResponse));
        }
Example #3
0
        public void Bind(AzureRetriever azureRetriever, IStatusProvider statusProvider, ILogProvider logProvider, TargetSettings targetSettings, ImageList imageList, PromptBehavior promptBehavior, List <AzureEnvironment> azureEnvironments, ref List <AzureEnvironment> userDefinedAzureEnvironments)
        {
            _TargetSettings = targetSettings;
            _LogProvider    = logProvider;
            _StatusProvider = statusProvider;
            _ImageList      = imageList;

            _AzureContextSource = new AzureContext(azureRetriever, targetSettings, promptBehavior);
            _AzureContextSource.AzureEnvironmentChanged       += _AzureContext_AzureEnvironmentChanged;
            _AzureContextSource.UserAuthenticated             += _AzureContext_UserAuthenticated;
            _AzureContextSource.BeforeAzureSubscriptionChange += _AzureContext_BeforeAzureSubscriptionChange;
            _AzureContextSource.AfterAzureSubscriptionChange  += _AzureContext_AfterAzureSubscriptionChange;
            _AzureContextSource.BeforeUserSignOut             += _AzureContext_BeforeUserSignOut;
            _AzureContextSource.AfterUserSignOut              += _AzureContext_AfterUserSignOut;
            _AzureContextSource.AfterAzureTenantChange        += _AzureContext_AfterAzureTenantChange;
            _AzureContextSource.BeforeAzureTenantChange       += _AzureContextSource_BeforeAzureTenantChange;
            azureLoginContextViewerSource.AfterContextChanged += AzureLoginContextViewerSource_AfterContextChanged;

            azureLoginContextViewerSource.Bind(_AzureContextSource, azureRetriever, azureEnvironments, ref userDefinedAzureEnvironments);
            treeViewSourceResourceManager1.Bind(logProvider, statusProvider, targetSettings, imageList, promptBehavior);
        }
        public void Bind(AzureRetriever azureRetriever, List <AzureEnvironment> defaultAzureEnvironments, ref List <AzureEnvironment> userDefinedAzureEnvironments)
        {
            _AzureRetriever               = azureRetriever;
            _DefaultAzureEnvironments     = defaultAzureEnvironments;
            _UserDefinedAzureEnvironments = userDefinedAzureEnvironments;

            listBoxAzureEnvironments.Items.Clear();
            foreach (AzureEnvironment azureEnvironment in defaultAzureEnvironments)
            {
                listBoxAzureEnvironments.Items.Add(azureEnvironment);
            }

            foreach (AzureEnvironment azureEnvironment in userDefinedAzureEnvironments)
            {
                listBoxAzureEnvironments.Items.Add(azureEnvironment);
            }

            if (listBoxAzureEnvironments.SelectedIndex < 0 && listBoxAzureEnvironments.Items.Count > 0)
            {
                listBoxAzureEnvironments.SelectedIndex = 0;
            }
        }
Example #5
0
        public MigAzForm()
        {
            InitializeComponent();
            _logProvider            = new FileLogProvider();
            _logProvider.OnMessage += _logProvider_OnMessage;
            _statusProvider         = new UIStatusProvider(this.toolStripStatusLabel1);
            _appSettingsProvider    = new AppSettingsProvider();
            _AzureEnvironments      = AzureEnvironment.GetAzureEnvironments();
            _AzureRetriever         = new AzureRetriever(_logProvider, _statusProvider);
            _TargetAzureContext     = new AzureContext(_AzureRetriever, _appSettingsProvider.GetTargetSettings(), app.Default.LoginPromptBehavior);
            _AzureGenerator         = new AzureGenerator(_logProvider, _statusProvider);

            if (app.Default.UserDefinedAzureEnvironments != null && app.Default.UserDefinedAzureEnvironments != String.Empty)
            {
                _UserDefinedAzureEnvironments = JsonConvert.DeserializeObject <List <AzureEnvironment> >(app.Default.UserDefinedAzureEnvironments);
            }

            targetAzureContextViewer.Bind(_TargetAzureContext, _AzureRetriever, _AzureEnvironments, ref _UserDefinedAzureEnvironments);

            propertyPanel1.Clear();
            splitContainer2.SplitterDistance = this.Height / 2;
            splitContainer3.SplitterDistance = splitContainer3.Width / 2;
            splitContainer4.SplitterDistance = 45;

            lblLastOutputRefresh.Text = String.Empty;
            txtDestinationFolder.Text = AppDomain.CurrentDomain.BaseDirectory;

            // Future thought, do away with the "Set"s and consolidate to a Bind?
            this.targetTreeView1.LogProvider    = this.LogProvider;
            this.targetTreeView1.StatusProvider = this.StatusProvider;
            this.targetTreeView1.ImageList      = this.imageList1;
            this.targetTreeView1.TargetSettings = _appSettingsProvider.GetTargetSettings();

            this.propertyPanel1.TargetTreeView   = targetTreeView1;
            this.propertyPanel1.PropertyChanged += PropertyPanel1_PropertyChanged;

            AlertIfNewVersionAvailable();
        }
        public async Task Read(Guid subscriptionId, AzureRetriever sourceAzureRetreiver, AzureRetriever targetAzureRetreiver, TreeView treeView)
        {
            try
            {
                StreamReader saveSelectionReader = new StreamReader(filePath);
                string       jsontext            = saveSelectionReader.ReadToEnd();
                saveSelectionReader.Close();

                saveSelections = JsonConvert.DeserializeObject <List <SaveSelection> >(jsontext);
            }
            catch
            {
                // If file does not exist, or invalid, starts a new object
                saveSelections = new List <SaveSelection>();
            }

            if (saveSelections.Exists(x => x.SubscriptionId == subscriptionId))
            {
                SaveSelection saveSelection = saveSelections.Find(x => x.SubscriptionId == subscriptionId);

                foreach (SaveSelectionVirtualNetwork saveSelectionVirtualNetwork in saveSelection.VirtualNetworks)
                {
                    foreach (TreeNode treeNode in treeView.Nodes.Find(saveSelectionVirtualNetwork.VirtualNetworkName, true))
                    {
                        if (treeNode.Tag.GetType() == typeof(Azure.Asm.VirtualNetwork))
                        {
                            Azure.Asm.VirtualNetwork asmVirtualNetwork = (Azure.Asm.VirtualNetwork)treeNode.Tag;

                            treeNode.Checked = true;
                        }
                    }
                }

                foreach (SaveSelectioStorageAccount saveSelectionStorageAccount in saveSelection.StorageAccounts)
                {
                    foreach (TreeNode treeNode in treeView.Nodes.Find(saveSelectionStorageAccount.StorageAccountName, true))
                    {
                        if (treeNode.Tag.GetType() == typeof(Azure.Asm.StorageAccount))
                        {
                            Azure.Asm.StorageAccount asmStorageAccount = (Azure.Asm.StorageAccount)treeNode.Tag;
                            if (saveSelectionStorageAccount.TargetStorageAccountName.Length > 0) // We aren't going to reload a blank name, should it occur, as a name is required
                            {
                                asmStorageAccount.TargetName = saveSelectionStorageAccount.TargetStorageAccountName;
                            }
                            treeNode.Checked = true;
                        }
                    }
                }

                foreach (SaveSelectionVirtualMachine saveSelectionVirtualMachine in saveSelection.VirtualMachines)
                {
                    foreach (TreeNode virtualMachineNode in treeView.Nodes.Find(saveSelectionVirtualMachine.VirtualMachine, true))
                    {
                        if (virtualMachineNode.Tag != null)
                        {
                            if (virtualMachineNode.Tag.GetType() == typeof(Azure.Asm.VirtualMachine))
                            {
                                Azure.Asm.VirtualMachine asmVirtualMachine = (Azure.Asm.VirtualMachine)virtualMachineNode.Tag;

                                if (asmVirtualMachine.CloudServiceName == saveSelectionVirtualMachine.CloudService && asmVirtualMachine.RoleName == saveSelectionVirtualMachine.VirtualMachine)
                                {
                                    asmVirtualMachine.TargetVirtualNetwork = SeekVirtualNetwork(saveSelectionVirtualMachine.TargetVirtualNetwork, await sourceAzureRetreiver.GetAzureAsmVirtualNetworks(), await targetAzureRetreiver.GetAzureARMVirtualNetworks());
                                    asmVirtualMachine.TargetSubnet         = SeekSubnet(saveSelectionVirtualMachine.TargetSubnet, asmVirtualMachine.TargetVirtualNetwork);

                                    if (saveSelectionVirtualMachine.TargetDiskStorageAccounts.ContainsKey(asmVirtualMachine.OSVirtualHardDisk.DiskName))
                                    {
                                        asmVirtualMachine.OSVirtualHardDisk.TargetStorageAccount = SeekStorageAccount(saveSelectionVirtualMachine.TargetDiskStorageAccounts[asmVirtualMachine.OSVirtualHardDisk.DiskName].ToString(), await sourceAzureRetreiver.GetAzureAsmStorageAccounts(), await targetAzureRetreiver.GetAzureARMStorageAccounts());
                                    }

                                    foreach (Azure.Asm.Disk asmDataDisk in asmVirtualMachine.DataDisks)
                                    {
                                        if (saveSelectionVirtualMachine.TargetDiskStorageAccounts.ContainsKey(asmDataDisk.DiskName))
                                        {
                                            asmDataDisk.TargetStorageAccount = SeekStorageAccount(saveSelectionVirtualMachine.TargetDiskStorageAccounts[asmDataDisk.DiskName].ToString(), await sourceAzureRetreiver.GetAzureAsmStorageAccounts(), await targetAzureRetreiver.GetAzureARMStorageAccounts());
                                        }
                                    }

                                    virtualMachineNode.Checked = true;
                                }
                            }
                        }
                    }
                }
            }
        }
Example #7
0
 public AzureStackContext(AzureRetriever azureRetriever, PromptBehavior defaultPromptBehavior = PromptBehavior.Always) : base(azureRetriever, null, defaultPromptBehavior)
 {
 }