private void UpdateParameter(ParameterNameChange pnc) { foreach (Machine m in MachineCollection) { MatchCollection domainVars = Regex.Matches(m.Domain, @"{%(.+?)%}", RegexOptions.IgnoreCase); if (domainVars.Count > 0) { foreach (Match var in domainVars) { string varName = var.Groups[1].Value; if (varName.Equals(pnc.OldValue)) { m.Domain = Regex.Replace(m.Domain, string.Format(@"{{%{0}%}}", pnc.OldValue), string.Format(@"{{%{0}%}}", pnc.NewValue)); } } } MatchCollection usernameVars = Regex.Matches(m.Username, @"{%(.+?)%}", RegexOptions.IgnoreCase); if (usernameVars.Count > 0) { foreach (Match var in usernameVars) { string varName = var.Groups[1].Value; if (varName.Equals(pnc.OldValue)) { m.Username = Regex.Replace(m.Username, string.Format(@"{{%{0}%}}", pnc.OldValue), string.Format(@"{{%{0}%}}", pnc.NewValue)); } } } MatchCollection passwordVars = Regex.Matches(m.Password, @"{%(.+?)%}", RegexOptions.IgnoreCase); if (passwordVars.Count > 0) { foreach (Match var in passwordVars) { string varName = var.Groups[1].Value; if (varName.Equals(pnc.OldValue)) { m.Password = Regex.Replace(m.Password, string.Format(@"{{%{0}%}}", pnc.OldValue), string.Format(@"{{%{0}%}}", pnc.NewValue)); } } } } }
private void ParameterNameChanged(ParameterNameChange paramNameChange) { UpdateParameter(paramNameChange); }
private void UpdateParameter(ParameterNameChange pnc) { foreach (OctopusLib.Action action in ActionCollection) { foreach (Command command in action.ActionCommands) { switch (command.CommandType) { case RunCommandType.Local: LocalCommand lc = command as LocalCommand; MatchCollection lccmdVars = Regex.Matches(lc.CommandText, @"{%(.+?)%}", RegexOptions.IgnoreCase); if (lccmdVars.Count > 0) { foreach (Match var in lccmdVars) { string varName = var.Groups[1].Value; if (varName.Equals(pnc.OldValue)) { lc.CommandText = Regex.Replace(lc.CommandText, string.Format(@"{{%{0}%}}", pnc.OldValue), string.Format(@"{{%{0}%}}", pnc.NewValue)); } } } break; case RunCommandType.Remote: RemoteCommand rc = command as RemoteCommand; MatchCollection rccmdVars = Regex.Matches(rc.CommandText, @"{%(.+?)%}", RegexOptions.IgnoreCase); if (rccmdVars.Count > 0) { foreach (Match var in rccmdVars) { string varName = var.Groups[1].Value; if (varName.Equals(pnc.OldValue)) { rc.CommandText = Regex.Replace(rc.CommandText, string.Format(@"{{%{0}%}}", pnc.OldValue), string.Format(@"{{%{0}%}}", pnc.NewValue)); } } } if (!string.IsNullOrEmpty(rc.RemoteRunAsUsername)) { MatchCollection rcrunasusernameVars = Regex.Matches(rc.RemoteRunAsUsername, @"{%(.+?)%}", RegexOptions.IgnoreCase); if (rcrunasusernameVars.Count > 0) { foreach (Match var in rcrunasusernameVars) { string varName = var.Groups[1].Value; if (varName.Equals(pnc.OldValue)) { rc.RemoteRunAsUsername = Regex.Replace(rc.RemoteRunAsUsername, string.Format(@"{{%{0}%}}", pnc.OldValue), string.Format(@"{{%{0}%}}", pnc.NewValue)); } } } } if (!string.IsNullOrEmpty(rc.RemoteRunAsPassword)) { MatchCollection rcrunaspwdVars = Regex.Matches(rc.RemoteRunAsPassword, @"{%(.+?)%}", RegexOptions.IgnoreCase); if (rcrunaspwdVars.Count > 0) { foreach (Match var in rcrunaspwdVars) { string varName = var.Groups[1].Value; if (varName.Equals(pnc.OldValue)) { rc.RemoteRunAsPassword = Regex.Replace(rc.RemoteRunAsPassword, string.Format(@"{{%{0}%}}", pnc.OldValue), string.Format(@"{{%{0}%}}", pnc.NewValue)); } } } } if (!string.IsNullOrEmpty(rc.WorkingDirectory)) { MatchCollection rcwdVars = Regex.Matches(rc.WorkingDirectory, @"{%(.+?)%}", RegexOptions.IgnoreCase); if (rcwdVars.Count > 0) { foreach (Match var in rcwdVars) { string varName = var.Groups[1].Value; if (varName.Equals(pnc.OldValue)) { rc.WorkingDirectory = Regex.Replace(rc.WorkingDirectory, string.Format(@"{{%{0}%}}", pnc.OldValue), string.Format(@"{{%{0}%}}", pnc.NewValue)); } } } } break; case RunCommandType.LinuxSSH: LinuxSSHCommand lsshc = command as LinuxSSHCommand; MatchCollection lsshccmdVars = Regex.Matches(lsshc.CommandText, @"{%(.+?)%}", RegexOptions.IgnoreCase); if (lsshccmdVars.Count > 0) { foreach (Match var in lsshccmdVars) { string varName = var.Groups[1].Value; if (varName.Equals(pnc.OldValue)) { lsshc.CommandText = Regex.Replace(lsshc.CommandText, string.Format(@"{{%{0}%}}", pnc.OldValue), string.Format(@"{{%{0}%}}", pnc.NewValue)); } } } break; case RunCommandType.Copy: CopyCommand cc = command as CopyCommand; if (!string.IsNullOrEmpty(cc.CopySourceDir)) { MatchCollection ccsdVars = Regex.Matches(cc.CopySourceDir, @"{%(.+?)%}", RegexOptions.IgnoreCase); if (ccsdVars.Count > 0) { foreach (Match var in ccsdVars) { string varName = var.Groups[1].Value; if (varName.Equals(pnc.OldValue)) { cc.CopySourceDir = Regex.Replace(cc.CopySourceDir, string.Format(@"{{%{0}%}}", pnc.OldValue), string.Format(@"{{%{0}%}}", pnc.NewValue)); } } } } if (!string.IsNullOrEmpty(cc.CopySourceFiles)) { MatchCollection ccsfVars = Regex.Matches(cc.CopySourceFiles, @"{%(.+?)%}", RegexOptions.IgnoreCase); if (ccsfVars.Count > 0) { foreach (Match var in ccsfVars) { string varName = var.Groups[1].Value; if (varName.Equals(pnc.OldValue)) { cc.CopySourceFiles = Regex.Replace(cc.CopySourceFiles, string.Format(@"{{%{0}%}}", pnc.OldValue), string.Format(@"{{%{0}%}}", pnc.NewValue)); } } } } if (!string.IsNullOrEmpty(cc.CopyTargetDir)) { MatchCollection cctdVars = Regex.Matches(cc.CopyTargetDir, @"{%(.+?)%}", RegexOptions.IgnoreCase); if (cctdVars.Count > 0) { foreach (Match var in cctdVars) { string varName = var.Groups[1].Value; if (varName.Equals(pnc.OldValue)) { cc.CopyTargetDir = Regex.Replace(cc.CopyTargetDir, string.Format(@"{{%{0}%}}", pnc.OldValue), string.Format(@"{{%{0}%}}", pnc.NewValue)); } } } } break; } } } }