Example #1
0
        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));
                        }
                    }
                }
            }
        }
Example #2
0
 private void ParameterNameChanged(ParameterNameChange paramNameChange)
 {
     UpdateParameter(paramNameChange);
 }
Example #3
0
        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;
                    }
                }
            }
        }