private void PullConfig() { _workInProgressCaption = "Please wait..."; _workInProgressText = "Generating script..."; _workInProgress.Run(); DisableControls(); try { if (cbCreateNewSet.Checked) { DateTime d = DateTime.Now; object o = qTA.CloneConfigSet(_configurationSetID, string.Format("{0}_{1}{2}{3}{4}{5}{6}", tbSelConfigSetName.Text, d.Year, d.Month, d.Day, d.Hour, d.Minute, d.Second)); _configurationSetID = Convert.ToInt32(o); } SNGDataSet.ScriptSettingRow _scriptSettings = Scriptngo.Common.SettingsManager.GetCurrentScriptSettings(this.SNGDataSet); string sepChar = _scriptSettings.CSVSeparator; string sExtendedHeader = string.Join(sepChar, Enum.GetNames(typeof(InputFileHeader))); sExtendedHeader += "SetTargetID"; Scriptngo.SNGScriptManager _ScriptManager = ScriptingFormManager.OpenNewScriptingForm(); if (_ScriptManager != null) { ScriptManagers.Add(_ScriptManager); _ScriptManager.UpdateHeader(sExtendedHeader.Split(sepChar.ToCharArray(), StringSplitOptions.RemoveEmptyEntries)); _ScriptManager.OnScriptAborted += _ScriptManager_OnScriptAborted; _ScriptManager.OnScriptFinished += _ScriptManager_OnScriptFinished; string thisLine = string.Empty; _ScriptManager.BeginAddingEntries(); try { int lastConfigTargetID = -1; int targetCount = clbTargets.CheckedItems.Count; int targetNum = 1; foreach (var target in configDS.SetTargets) { if (IsTargetSelected(target.ConfigTargetID)) { if (lastConfigTargetID == -1) { lastConfigTargetID = target.ConfigTargetID; } // Open a new ScriptinForm if script needs to be generated per configuration target if (target.ConfigTargetID != lastConfigTargetID && cbScriptPerHost.Checked && (targetNum % (numHostPerForm.Value + 1) == 0)) { if (_ScriptManager != null) { _ScriptManager.EndAddingEntries(); _ScriptManager.ExecuteScript(null, false); } _ScriptManager = ScriptingFormManager.OpenNewScriptingForm(); if (_ScriptManager == null) { break; } _ScriptManager.OnScriptAborted += _ScriptManager_OnScriptAborted; _ScriptManager.OnScriptFinished += _ScriptManager_OnScriptFinished; ScriptManagers.Add(_ScriptManager); _ScriptManager.UpdateHeader(sExtendedHeader.Split(sepChar.ToCharArray(), StringSplitOptions.RemoveEmptyEntries)); _ScriptManager.BeginAddingEntries(); lastConfigTargetID = target.ConfigTargetID; } int configSetTargetID = cbCreateNewSet.Checked ? (int)qTA.GetConfigSetTargetID(_configurationSetID, target.ConfigTargetID) : target.ConfigSetTargetID; thisLine = "1," + string.Concat(target.IsJumpServerIPNull() ? "" : target.JumpServerIP.Trim()) + "," + target.DeviceVendor + "," + target.TargetIP + string.Concat(target.IsPortNull() ? "," : string.Format(":{0},", target.Port)) + "" + "," + target.Protocol + "," + "sh run" + ",yes,,," + ",,," + configSetTargetID; if (!string.IsNullOrEmpty(thisLine)) { bool added = _ScriptManager.AddEntry(thisLine, false); if (!added) { if (MessageBox.Show("There was an error adding a script line. Do you want to continue ?", "Script generation error", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == System.Windows.Forms.DialogResult.No) { break; } } } targetNum++; } } } finally { if (_ScriptManager != null) { _ScriptManager.EndAddingEntries(); _ScriptManager.ExecuteScript(null, false); } } } } finally { _workInProgress.Cancel(); _workInProgressSupportCancellation = false; btnPullConfig.Enabled = ScriptManagers.Count == 0; lblOperationInProgress.Text = "Pulling configuration..."; pbPullProgress.Value = 0; pbPullProgress.Maximum = ScriptManagers.Count; pbPullProgress.Visible = ScriptManagers.Count > 1; btnCancelPull.Visible = !btnPullConfig.Enabled; } }
private void Deploy() { _workInProgress.Caption = "Please wait..."; _workInProgress.Text = "Generating script..."; _workInProgress.Run(); try { SNGDataSet.ScriptSettingRow _scriptSettings = Scriptngo.Common.SettingsManager.GetCurrentScriptSettings(this.SNGDataSet); string sepChar = _scriptSettings.CSVSeparator; string sExtendedHeader = string.Join(sepChar, Enum.GetNames(typeof(InputFileHeader))); sExtendedHeader += "ConfigLineID"; Scriptngo.SNGScriptManager _ScriptManager = ScriptingFormManager.OpenNewScriptingForm(); if (_ScriptManager != null) { string thisLine = string.Empty; _ScriptManager.SetSavePrompt(false); _ScriptManager.BeginAddingEntries(); try { int lastConfigTargetID = (configDS.Deploy.Rows[0] as ConfigDS.DeployRow).ConfigTargetID; int targetCount = clbTargets.CheckedItems.Count; int targetNum = 0; foreach (var configLine in configDS.Deploy) { if (IsTargetSelected(configLine.ConfigTargetID)) { if (configLine.ConfigTargetID != lastConfigTargetID) { targetNum++; } // Open a new ScriptinForm if script needs to be generated per configuration target if (configLine.ConfigTargetID != lastConfigTargetID && cbScriptPerHost.Checked && (targetNum > 0 && targetNum % numHostPerForm.Value == 0)) { #region Open a new Scripting Form if (_ScriptManager != null) { _ScriptManager.EndAddingEntries(); if (cbStartScripts.Checked) { _ScriptManager.ExecuteScript(null, false); } } _ScriptManager = ScriptingFormManager.OpenNewScriptingForm(); if (_ScriptManager == null) { break; } _ScriptManager.SetSavePrompt(false); _ScriptManager.BeginAddingEntries(); lastConfigTargetID = configLine.ConfigTargetID; #endregion } thisLine = "1," + string.Concat(configLine.IsJumpServerIPNull() ? "" : configLine.JumpServerIP.Trim()) + "," + configLine.DeviceVendor + "," + configLine.TargetIP + string.Concat(configLine.IsPortNull() ? "," : string.Format(":{0},", configLine.Port)) + "" + "," + configLine.Protocol + "," + configLine.ConfigLine + ",yes,,," + ",,,," + configLine.ConfigLineID; if (!string.IsNullOrEmpty(thisLine)) { bool added = _ScriptManager.AddEntry(thisLine, false); if (!added) { if (MessageBox.Show("There was an error adding a script line. Do you want to continue ?", "Script generation error", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == System.Windows.Forms.DialogResult.No) { break; } } } } if (configLine.ConfigTargetID != lastConfigTargetID) { lastConfigTargetID = configLine.ConfigTargetID; } } } finally { if (_ScriptManager != null) { _ScriptManager.EndAddingEntries(); if (cbStartScripts.Checked) { _ScriptManager.ExecuteScript(null, false); } } } } } finally { _workInProgress.Cancel(); _workInProgressSupportCancellation = false; DialogResult = DialogResult.OK; } }