Beispiel #1
0
        protected void btnWebService_Click(object sender, EventArgs e)
        {
            string host             = "yb19-avr01-01.test.pncbank.com";
            ClearViewWebServices ws = new ClearViewWebServices();

            ws.Url = "http://localhost:64919/ClearViewWebServices.asmx";

            string result = ws.GetAvamarGrid(host);

            if (!string.IsNullOrEmpty(result) && result.TrimStart().StartsWith("<"))
            {
                XmlDocument doc = new XmlDocument();
                doc.LoadXml(result);
                XmlNodeList xnList = doc.SelectNodes("/CLIOutput/Data/Row");
                foreach (XmlNode xn in xnList)
                {
                    //if (xn["Attribute"].InnerText == "Server utilization")
                    //{
                    //    Response.Write(xn["Value"].InnerText + "<br/>");
                    //    break;
                    //}
                    Response.Write(xn["Attribute"].InnerText + " = " + xn["Value"].InnerText + "<br/>");
                }
            }
            else
            {
                Response.Write(result + "<br/>");
            }
        }
Beispiel #2
0
        protected void btnActivated_Click(object sender, EventArgs e)
        {
            string grid = "yb19-avr01-01.test.pncbank.com";
            ClearViewWebServices oWebService = new ClearViewWebServices();

            oWebService.Url = "http://localhost:64919/ClearViewWebServices.asmx";

            AvamarRegistration oAvamarRegistration = new AvamarRegistration(0, dsn);
            AvamarReturnType   activated           = oAvamarRegistration.API(oWebService.GetAvamarClient(grid, "/BRII", "WCIRU301A.pncbank.com"));

            if (activated.Error == false)
            {
                foreach (XmlNode node in activated.Nodes)
                {
                    if (node["Attribute"].InnerText == "Activated")
                    {
                        Response.Write(node["Value"].InnerText + "<br/>");
                    }
                }
            }
            else
            {
                Response.Write(activated.Message + "<br/>");
            }
        }
Beispiel #3
0
        protected void btnRecom_Click(object sender, EventArgs e)
        {
            Variables oVariable = new Variables((int)CurrentEnvironment.PNCNT_DEV);
            string    client    = "WDCLV015A.pncbank.com";
            string    strError  = "";

            Avamar               oAvamar             = new Avamar(0, dsn);
            AvamarRegistration   oAvamarRegistration = new AvamarRegistration(0, dsn);
            ClearViewWebServices oWebService         = new ClearViewWebServices();

            System.Net.NetworkCredential oCredentialsDNS = new System.Net.NetworkCredential(oVariable.ADUser(), oVariable.ADPassword(), oVariable.Domain());
            oWebService.Credentials = oCredentialsDNS;
            oWebService.Url         = oVariable.WebServiceURL();

            // First, query for groups.
            DataSet dsGroups = oAvamar.GetDecoms(client);

            if (dsGroups.Tables[0].Rows.Count > 0)
            {
                string grid   = dsGroups.Tables[0].Rows[0]["grid"].ToString();
                string domain = dsGroups.Tables[0].Rows[0]["domain"].ToString();
                // Second, add the groups.
                foreach (DataRow drGroup in dsGroups.Tables[0].Rows)
                {
                    if (String.IsNullOrEmpty(strError) == false)
                    {
                        break;
                    }
                    AvamarReturnType restore = oAvamarRegistration.API(oWebService.AddAvamarGroup(grid, domain, client, drGroup["group"].ToString()));
                    if (restore.Error == false)
                    {
                    }
                    else
                    {
                        strError = restore.Message;
                    }
                }
                // Third, remove the /Decom group
                AvamarReturnType decom = oAvamarRegistration.API(oWebService.DeleteAvamarGroup(grid, domain, client, oAvamar.DecomGroup));
                if (decom.Error == false)
                {
                    // Fourth, recommission the saved decom groups.
                    oAvamar.UpdateDecom(client);
                }
                else
                {
                    strError = decom.Message;
                }
            }
        }
Beispiel #4
0
        private void LoadServer(DataRow dr)
        {
            int intRequest = Int32.Parse(dr["requestid"].ToString());
            int intItem    = Int32.Parse(dr["itemid"].ToString());
            int intNumber  = Int32.Parse(dr["number"].ToString());

            string strNameCurrent  = dr["name_current"].ToString();
            string strIPCurrent    = dr["ip_current"].ToString();
            string strAliasCurrent = dr["alias_current"].ToString();
            string strNameNew      = dr["name_new"].ToString();
            string strIPNew        = dr["ip_new"].ToString();
            string strAliasNew     = dr["alias_new"].ToString();
            string strReason       = dr["reason"].ToString();

            txtSearchName.Text  = strNameCurrent;
            txtSearchIP.Text    = strIPCurrent;
            txtSearchAlias.Text = strAliasCurrent;

            if (strReason != "")
            {
                // Show Confirmation Page
                lblName.Text       = strNameCurrent;
                lblIP.Text         = strIPCurrent;
                lblAlias.Text      = strAliasCurrent;
                panConfirm.Visible = true;
                strConfirm         = oDNS.GetDNSBody(intRequest, intItem, intNumber, true, intEnvironment);
                btnNext.Attributes.Add("onclick", "return ValidateCheck('" + chkAgree.ClientID + "','Please check the box stating that you agree to the disclaimer notice')" +
                                       " && ProcessButton(this)" +
                                       ";");
                btnDiscard.Attributes.Add("onclick", "return confirm('WARNING: Starting over will discard all the changes you have made.\\n\\nAre you sure you want to continue?') && ProcessButton(this);");
                btnContinue.Visible = false;
                btnConfirm.Visible  = false;
            }
            else
            {
                panSearch.Visible = true;
                btnNext.Visible   = false;

                // Get Record from DNS
                System.Net.NetworkCredential oCredentials = new System.Net.NetworkCredential(oVariable.ADUser(), oVariable.ADPassword(), oVariable.Domain());
                ClearViewWebServices         oWebService  = new ClearViewWebServices();
                oWebService.Timeout     = Int32.Parse(ConfigurationManager.AppSettings["WS_TIMEOUT"]);
                oWebService.Credentials = oCredentials;
                oWebService.Url         = oVariable.WebServiceURL();
                Settings oSetting        = new Settings(0, dsn);
                bool     boolDNS_QIP     = oSetting.IsDNS_QIP();
                bool     boolDNS_Bluecat = oSetting.IsDNS_Bluecat();

                // Get Values
                if (strNameCurrent != "")
                {
                    if (boolDNS_QIP == true)
                    {
                        strIPCurrent = oWebService.SearchDNSforPNC("", strNameCurrent, false, true);
                        if (strIPCurrent.StartsWith("***") == false)
                        {
                            strNameCurrent  = oWebService.SearchDNSforPNC(strIPCurrent, "", false, true);
                            strAliasCurrent = oWebService.SearchDNSforPNC(strIPCurrent, "", true, true);
                            if (strAliasCurrent.StartsWith("***") == true)
                            {
                                strAliasCurrent = "";
                            }
                        }
                        else
                        {
                            strNameCurrent = "";
                            strIPCurrent   = "";
                        }
                    }
                    if (boolDNS_Bluecat == true)
                    {
                        strIPCurrent = oWebService.SearchBluecatDNS("", strNameCurrent);
                        if (strIPCurrent.StartsWith("***") == false)
                        {
                            strNameCurrent  = oWebService.SearchBluecatDNS(strIPCurrent, "");
                            strAliasCurrent = "";
                        }
                        else
                        {
                            strNameCurrent = "";
                            strIPCurrent   = "";
                        }
                    }
                }
                else if (strIPCurrent != "")
                {
                    if (boolDNS_QIP == true)
                    {
                        strNameCurrent = oWebService.SearchDNSforPNC(strIPCurrent, "", false, true);
                        if (strNameCurrent.StartsWith("***") == false)
                        {
                            strAliasCurrent = oWebService.SearchDNSforPNC(strIPCurrent, "", true, true);
                            if (strAliasCurrent.StartsWith("***") == true)
                            {
                                strAliasCurrent = "";
                            }
                        }
                        else
                        {
                            strNameCurrent = "";
                            strIPCurrent   = "";
                        }
                    }
                    if (boolDNS_Bluecat == true)
                    {
                        strNameCurrent = oWebService.SearchBluecatDNS(strIPCurrent, "");
                        if (strNameCurrent.StartsWith("***") == false)
                        {
                            strAliasCurrent = "";
                        }
                        else
                        {
                            strNameCurrent = "";
                            strIPCurrent   = "";
                        }
                    }
                }
                else if (strAliasCurrent != "")
                {
                    if (boolDNS_QIP == true)
                    {
                        strIPCurrent = oWebService.SearchDNSforPNC("", strAliasCurrent, true, true);
                        if (strIPCurrent.StartsWith("***") == false)
                        {
                            strNameCurrent  = oWebService.SearchDNSforPNC(strIPCurrent, "", false, true);
                            strAliasCurrent = oWebService.SearchDNSforPNC(strIPCurrent, "", true, true);
                            if (strAliasCurrent.StartsWith("***") == true)
                            {
                                strAliasCurrent = "";
                            }
                        }
                        else
                        {
                            strAliasCurrent = "";
                            strIPCurrent    = "";
                        }
                    }
                    if (boolDNS_Bluecat == true)
                    {
                        strAliasCurrent = "";
                        strIPCurrent    = "";
                    }
                }

                if (strNameCurrent.Contains(".") == true)
                {
                    strDomain      = strNameCurrent.Substring(strNameCurrent.IndexOf("."));
                    strNameCurrent = strNameCurrent.Substring(0, strNameCurrent.IndexOf("."));
                }

                if (strNameCurrent != "" && strIPCurrent != "")
                {
                    DataSet ds = oServer.GetDNS(strNameCurrent);
                    if (ds.Tables[0].Rows.Count == 1)
                    {
                        bool boolPermit   = false;
                        int  intServer    = Int32.Parse(ds.Tables[0].Rows[0]["id"].ToString());
                        int  intUser      = (ds.Tables[0].Rows[0]["userid"].ToString() == "" ? 0 : Int32.Parse(ds.Tables[0].Rows[0]["userid"].ToString()));
                        int  intOwner     = (ds.Tables[0].Rows[0]["appcontact"].ToString() == "" ? 0 : Int32.Parse(ds.Tables[0].Rows[0]["appcontact"].ToString()));
                        int  intPrimary   = (ds.Tables[0].Rows[0]["admin1"].ToString() == "" ? 0 : Int32.Parse(ds.Tables[0].Rows[0]["admin1"].ToString()));
                        int  intSecondary = (ds.Tables[0].Rows[0]["admin2"].ToString() == "" ? 0 : Int32.Parse(ds.Tables[0].Rows[0]["admin2"].ToString()));
                        int  intRequestor = (ds.Tables[0].Rows[0]["requestor"].ToString() == "" ? 0 : Int32.Parse(ds.Tables[0].Rows[0]["requestor"].ToString()));
                        int  intClass     = (ds.Tables[0].Rows[0]["classid"].ToString() == "" ? 0 : Int32.Parse(ds.Tables[0].Rows[0]["classid"].ToString()));
                        int  intProd      = (intClass > 0 ? (oClass.IsProd(intClass) ? 1 : 0) : -1);

                        panShow.Visible  = true;
                        panAlias.Visible = boolDNS_QIP;
                        lblName.Text     = strNameCurrent;
                        lblIP.Text       = strIPCurrent;
                        lblAlias.Text    = strAliasCurrent;
                        lblDomain.Text   = strDomain;

                        // Load Values
                        txtName.Text = strNameCurrent;
                        char[]   strIPSplit = { '.' };
                        string[] strIP      = strIPCurrent.Split(strIPSplit);
                        txtIP1.Text = strIP[0];
                        txtIP2.Text = strIP[1];
                        txtIP3.Text = strIP[2];
                        txtIP4.Text = strIP[3];
                        char[]   strAliasSplit = { ';' };
                        string[] strAlias      = strAliasCurrent.Split(strAliasSplit);
                        for (int ii = 0; ii < strAlias.Length; ii++)
                        {
                            if (strAlias[ii].Trim() != "")
                            {
                                string strAliasName = strAlias[ii].Trim();
                                while (strAliasName.Contains(strDomain) == true)
                                {
                                    strAliasName = strAliasName.Replace(strDomain, "");
                                }
                                lstAlias.Items.Add(new ListItem(strAliasName, strAliasName));
                            }
                        }

                        // Check Permission and either show read only, or permit edit
                        if (intProfile == intOwner || intProfile == intPrimary || intProfile == intSecondary || intProfile == intRequestor)
                        {
                            boolPermit = true;
                        }
                        if (oApplication.Get(intApplication, "dns") == "1" || oUser.IsAdmin(intProfile) || intProfile == intUser)
                        {
                            boolPermit = true;
                        }

                        if (boolPermit == true)
                        {
                            btnContinue.Visible    = false;
                            txtSearchName.Enabled  = false;
                            txtSearchIP.Enabled    = false;
                            txtSearchAlias.Enabled = false;
                            chkName.Attributes.Add("onclick", "CheckChange3('" + chkName.ClientID + "','" + chkIP.ClientID + "','" + chkAlias.ClientID + "','" + txtName.ClientID + "');");
                            chkIP.Attributes.Add("onclick", "CheckChange3('" + chkIP.ClientID + "','" + chkName.ClientID + "','" + chkAlias.ClientID + "','" + txtIP1.ClientID + "','" + txtIP2.ClientID + "','" + txtIP3.ClientID + "','" + txtIP4.ClientID + "');");
                            chkAlias.Attributes.Add("onclick", "CheckChange3('" + chkAlias.ClientID + "','" + chkName.ClientID + "','" + chkIP.ClientID + "','" + lstAlias.ClientID + "','" + btnAdd.ClientID + "','" + btnEdit.ClientID + "','" + btnRemove.ClientID + "','" + txtAlias.ClientID + "');");
                            btnAdd.Attributes.Add("onclick", "return AddDNS('" + lstAlias.ClientID + "','" + txtAlias.ClientID + "','" + hdnAlias.ClientID + "');");
                            btnEdit.Attributes.Add("onclick", "return EditDNS('" + lstAlias.ClientID + "','" + txtAlias.ClientID + "','" + hdnAlias.ClientID + "');");
                            btnRemove.Attributes.Add("onclick", "return RemoveDNS('" + lstAlias.ClientID + "','" + hdnAlias.ClientID + "');");
                            string strChange = "";
                            if (intProd != 0 || oServer.Get(intServer, "infrastructure") == "1")
                            {
                                panChange.Visible = true;
                                strChange         = " && ValidateTextLength('" + txtChange.ClientID + "', 'Please enter a valid change control number\\n\\n - Must start with either \"CHG\" or \"PTM\"\\n - Must be exactly 10 characters in length', 10, ['CHG','PTM'], ['CHG0000000','PTM0000000','CHG1111111','PTM1111111','CHG9999999','PTM9999999','CHGXXXXXXX','PTMXXXXXXX'])";
                            }
                            btnConfirm.Attributes.Add("onclick", "return EnsureDNSCheck('" + chkName.ClientID + "','" + chkIP.ClientID + "','" + chkAlias.ClientID + "')" +
                                                      " && (document.getElementById('" + chkName.ClientID + "').checked == false || (document.getElementById('" + chkName.ClientID + "').checked == true" +
                                                      " && ValidateText('" + txtName.ClientID + "','Please enter a valid name')" +
                                                      "))" +
                                                      " && (document.getElementById('" + chkIP.ClientID + "').checked == false || (document.getElementById('" + chkIP.ClientID + "').checked == true" +
                                                      " && ValidateNumberBetween('" + txtIP1.ClientID + "',1,255,'Please enter a valid IP Address')" +
                                                      " && ValidateNumberBetween('" + txtIP2.ClientID + "',1,255,'Please enter a valid IP Address')" +
                                                      " && ValidateNumberBetween('" + txtIP3.ClientID + "',1,255,'Please enter a valid IP Address')" +
                                                      " && ValidateNumberBetween('" + txtIP4.ClientID + "',1,255,'Please enter a valid IP Address')" +
                                                      "))" +
                                                      strChange +
                                                      " && ValidateText('" + txtReason.ClientID + "','Please enter a reason')" +
                                                      " && ProcessButton(this)" +
                                                      ";");
                        }
                        else
                        {
                            btnConfirm.Visible = false;
                            panAccess.Visible  = true;
                            chkName.Enabled    = false;
                            chkIP.Enabled      = false;
                            chkAlias.Enabled   = false;
                            btnAdd.Enabled     = false;
                            btnEdit.Enabled    = false;
                            btnRemove.Enabled  = false;
                            if (intUser > 0)
                            {
                                strContacts += "<tr><td>Device Owner:</td><td>" + oUser.GetFullName(intUser) + " (" + oUser.GetName(intUser) + ")" + "</td></tr>";
                            }
                            if (intOwner > 0)
                            {
                                strContacts += "<tr><td>Departmental Manager:</td><td>" + oUser.GetFullName(intOwner) + " (" + oUser.GetName(intOwner) + ")" + "</td></tr>";
                            }
                            if (intPrimary > 0)
                            {
                                strContacts += "<tr><td>Application Technical Lead:</td><td>" + oUser.GetFullName(intPrimary) + " (" + oUser.GetName(intPrimary) + ")" + "</td></tr>";
                            }
                            if (intSecondary > 0)
                            {
                                strContacts += "<tr><td>Administrative Contact:</td><td>" + oUser.GetFullName(intSecondary) + " (" + oUser.GetName(intSecondary) + ")" + "</td></tr>";
                            }
                            if (intRequestor > 0)
                            {
                                strContacts += "<tr><td>Design Initiated By:</td><td>" + oUser.GetFullName(intRequestor) + " (" + oUser.GetName(intRequestor) + ")" + "</td></tr>";
                            }
                            DataSet dsDecoms = oApplication.GetDecoms();
                            if (dsDecoms.Tables[0].Rows.Count > 0)
                            {
                                strContacts += "<tr><td colspan=\"2\">Alternatively, you can contact a resource from one of the following departments:</td></tr>";
                                foreach (DataRow drDecom in dsDecoms.Tables[0].Rows)
                                {
                                    strContacts += "<tr><td></td><td>" + drDecom["name"].ToString() + "</td></tr>";
                                }
                            }
                        }
                    }
                    else
                    {
                        btnReset.Enabled   = false;
                        btnConfirm.Visible = false;
                        panExist.Visible   = true;
                        lblExist.Text      = "This device does not exist in the database. Please try again...";
                    }
                }
                else
                {
                    btnReset.Enabled   = false;
                    btnConfirm.Visible = false;
                    panExist.Visible   = true;
                    lblExist.Text      = "This device does not exist in DNS. Please try again...";
                }
            }
        }
Beispiel #5
0
        protected void btnGo_Click(object sender, EventArgs e)
        {
            string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\temp\\destroys.xls;Extended Properties=Excel 8.0;";

            System.Net.NetworkCredential oCredentials = new System.Net.NetworkCredential(oVariable.ADUser(), oVariable.ADPassword(), oVariable.Domain());
            ClearViewWebServices         oServiceNow  = new ClearViewWebServices();

            oServiceNow.Timeout     = Timeout.Infinite;
            oServiceNow.Credentials = oCredentials;
            oServiceNow.Url         = oVariable.WebServiceURL();

            System.Net.NetworkCredential oCredentialsSN = new System.Net.NetworkCredential(oVariable.ServiceNowUsername(), oVariable.ServiceNowPassword());
            string url  = oVariable.ServiceNowHost();
            string user = oVariable.ServiceNowUsername();
            string pass = oVariable.ServiceNowPassword();

            OleDbDataAdapter myCommand1 = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", strConn);
            DataSet          ds1        = new DataSet();

            myCommand1.Fill(ds1, "ExcelInfo");
            foreach (DataRow dr in ds1.Tables[0].Rows)
            {
                if (dr[0].ToString().Trim() == "")
                {
                    break;
                }
                string name = dr[0].ToString().Trim();
                Response.Write(name + "...");
                if (name.Contains("-DR") == false)
                {
                    // Ping server name
                    Ping   ping     = new Ping();
                    string response = "";
                    try
                    {
                        PingReply reply = ping.Send(name);
                        response = reply.Status.ToString().ToUpper();
                    }
                    catch { }
                    Response.Write((response == "SUCCESS" ? "** ONLINE **" : "offline") + "...");

                    // Check Service Now
                    string result = oServiceNow.GetServiceNowServer(url, user, pass, name);
                    if (String.IsNullOrEmpty(result) == false)
                    {
                        int _state = result.IndexOf("<u_desired_operational_state");
                        if (_state > -1)
                        {
                            string state = result.Substring(_state);
                            state = state.Substring(state.IndexOf(">") + 1);
                            state = state.Substring(0, state.IndexOf("<"));
                            if (state == "-2")
                            {
                                Response.Write("decommissioned" + "...");
                            }
                            else
                            {
                                Response.Write("** " + state + " **...");
                            }
                        }
                        else
                        {
                            Response.Write("** missing desired operational state **...");
                        }

                        int _status = result.IndexOf("<install_status");
                        if (_status > -1)
                        {
                            string status = result.Substring(_status);
                            status = status.Substring(status.IndexOf(">") + 1);
                            status = status.Substring(0, status.IndexOf("<"));
                            if (status == "7")
                            {
                                Response.Write("retired" + "...");
                            }
                            else
                            {
                                Response.Write("** " + status + " **...");
                            }
                        }
                        else
                        {
                            Response.Write("** missing install status **...");
                        }
                    }
                    else
                    {
                        Response.Write("** NOT THERE **" + "...");
                    }
                }
                else
                {
                    Response.Write("dr");
                }

                Response.Write("<br/>");
            }
        }
Beispiel #6
0
        public void Backups(int EnvironmentID)
        {
            // Setup Classes
            Servers            oServer             = new Servers(0, dsn);
            AvamarRegistration oAvamarRegistration = new AvamarRegistration(0, dsn);
            Log       oLog      = new Log(0, dsn);
            Variables oVariable = new Variables(EnvironmentID);

            // Setup Webservice for querying via SSH
            System.Net.NetworkCredential oCredentialsDNS = new System.Net.NetworkCredential(oVariable.ADUser(), oVariable.ADPassword(), oVariable.Domain());
            ClearViewWebServices         oWebService     = new ClearViewWebServices();

            oWebService.Url = oVariable.WebServiceURL();

            DataSet dsBackups = oServer.GetAvamarBackups();

            if (dsBackups.Tables[0].Rows.Count > 0)
            {
                oLog.AddEvent("", "", "Get avamar backups (" + dsBackups.Tables[0].Rows.Count.ToString() + ")", LoggingType.Debug);
                foreach (DataRow drBackup in dsBackups.Tables[0].Rows)
                {
                    ClearResults();

                    int      intServer  = Int32.Parse(drBackup["id"].ToString());
                    DateTime datCreated = DateTime.Parse(drBackup["created"].ToString());
                    int      intAnswer  = Int32.Parse(drBackup["answerid"].ToString());
                    string   strName    = drBackup["servername"].ToString();
                    string   strGrid    = drBackup["grid"].ToString();
                    string   strDomain  = drBackup["domain"].ToString();
                    string   strGroup   = drBackup["group"].ToString();

                    oLog.AddEvent(intAnswer, strName, "", "Starting automated Avamar backup validation", LoggingType.Debug);
                    string strError = "";

                    // Initiate backup for client
                    AvamarReturnType backup = oAvamarRegistration.API(oWebService.GetAvamarBackup(strGrid, strDomain, strName));
                    if (backup.Error == false)
                    {
                        oLog.AddEvent(intAnswer, strName, "", "There are " + backup.Nodes.Count.ToString() + " backup(s).", LoggingType.Information);
                        if (backup.Nodes.Count > 0)
                        {
                            oLog.AddEvent(intAnswer, strName, "", "Backup has been validated", LoggingType.Information);
                            oServer.UpdateAvamarBackupCompleted(intServer, backup.Nodes[0].InnerXml, DateTime.Now.ToString(), 0);
                        }
                        else
                        {
                            // Check to see if a certain amount of time has passed and if so, throw error.
                            TimeSpan span = DateTime.Now.Subtract(datCreated);
                            if (span.TotalMinutes > 90)
                            {
                                // It's been an hour and a half.  Throw error.
                                strError = "The backup has still not completed after 90 minutes on grid " + strGrid;
                            }
                        }
                    }
                    else
                    {
                        strError = backup.Message + " (" + backup.Code + ")";
                    }

                    if (strError != "")
                    {
                        oLog.AddEvent(intAnswer, strName, "", strError, LoggingType.Error);
                        oServer.UpdateAvamarBackupCompleted(intServer, strError, DateTime.Now.ToString(), 1);
                        oServer.AddError(0, 0, 0, intServer, 906, strError);
                    }
                }
            }
        }
Beispiel #7
0
        protected void btnSubmit_Click(Object Sender, EventArgs e)
        {
            int    intUser   = 0;
            string strAssets = "";

            if (Int32.TryParse(Request.Form["hdnAJAXValue"], out intUser) == true && intUser > 0)
            {
                foreach (RepeaterItem ri in rptDevices.Items)
                {
                    CheckBox chkDevice    = (CheckBox)ri.FindControl("chkDevice");
                    Label    lblName      = (Label)ri.FindControl("lblName");
                    Label    lblSerial    = (Label)ri.FindControl("lblSerial");
                    Label    lblStatus    = (Label)ri.FindControl("lblStatus");
                    bool     boolComplete = lblStatus.Text.ToUpper().Contains("COMPLETED");
                    oLog.AddEvent(lblName.Text, lblSerial.Text, "RECOMMISSION: Started by " + oUser.GetFullNameWithLanID(intProfile), LoggingType.Information);

                    if (chkDevice.Checked == true)
                    {
                        if (chkDevice.ToolTip[0].ToString() == "S")
                        {
                            int     intServer = Int32.Parse(chkDevice.ToolTip.Substring(1));
                            DataSet dsServers = oServer.GetAssetsServer(intServer);
                            foreach (DataRow drServer in dsServers.Tables[0].Rows)
                            {
                                int    intAsset = Int32.Parse(drServer["assetid"].ToString());
                                string strName  = lblName.Text;
                                if (drServer["dr"].ToString() == "1")
                                {
                                    strName += "-DR";
                                }
                                // Update Recommission Reason
                                oAsset.UpdateDecommissionRecommission(intAsset, intUser, txtReason.Text);
                                // Set status to InUse
                                oAsset.AddStatus(intAsset, strName, (int)AssetStatus.InUse, intUser, DateTime.Now);
                                // Clear cv_servers_assets DECOM field
                                oServer.UpdateAssetDecom(intServer, intAsset, "");
                                if (boolComplete == true)
                                {
                                    DataSet dsOrders = oAssetOrder.GetByAsset(intAsset, false);
                                    foreach (DataRow drOrders in dsOrders.Tables[0].Rows)
                                    {
                                        int intOrder = Int32.Parse(drOrders["orderid"].ToString());
                                        // Cancel Resource Requests
                                        int intResource = 0;
                                        if (Int32.TryParse(drOrders["resourceid"].ToString(), out intResource) == true)
                                        {
                                            oResourceRequest.UpdateStatusOverallWorkflow(intResource, (int)ResourceRequestStatus.Cancelled);
                                        }
                                        // Delete Order
                                        oAssetOrder.DeleteOrder(intOrder);
                                        // Delete Asset Order Asset Selection
                                        oAssetOrder.DeleteAssetOrderAssetSelection(intOrder, intAsset);
                                    }
                                    // Set NewOrderID = 0
                                    oAsset.updateNewOrderId(0, intAsset);
                                }
                                // Set strAssets to assets recommissioned (for status message on postback)
                                if (strAssets != "")
                                {
                                    strAssets += strSplit[0].ToString();
                                }
                                strAssets += intAsset.ToString();
                            }
                            // Remove previous decom records
                            if (boolComplete == true)
                            {
                                bool boolPNC = (oServer.Get(intServer, "pnc") == "1");
                                // Update Server Name Record
                                int intName = Int32.Parse(oServer.Get(intServer, "nameid"));
                                if (boolPNC)
                                {
                                    oServerName.UpdateFactory(intName, 0);
                                }
                                else
                                {
                                    oServerName.Update(intName, 0);
                                }
                            }
                            // Clear cv_servers DECOM field
                            oServer.UpdateDecommissioned(intServer, "");
                            // Update IP Address(es) availability
                            DataSet dsIP = oServer.GetIP(intServer, 0, 0, 0, 0);
                            foreach (DataRow drIP in dsIP.Tables[0].Rows)
                            {
                                int intIP = Int32.Parse(drIP["ipaddressid"].ToString());
                                oIPAddresses.UpdateAvailable(intIP, 0);
                            }
                            // Restore Avamar Group(s)
                            if (chkAvamar.Checked)
                            {
                                Avamar                       oAvamar             = new Avamar(0, dsn);
                                AvamarRegistration           oAvamarRegistration = new AvamarRegistration(0, dsn);
                                ClearViewWebServices         oWebService         = new ClearViewWebServices();
                                System.Net.NetworkCredential oCredentialsDNS     = new System.Net.NetworkCredential(oVariable.ADUser(), oVariable.ADPassword(), oVariable.Domain());
                                oWebService.Credentials = oCredentialsDNS;
                                oWebService.Url         = oVariable.WebServiceURL();
                                string strError = "";

                                // First, query for groups.
                                DataSet dsGroups = oAvamar.GetDecoms(lblName.Text);
                                if (dsGroups.Tables[0].Rows.Count > 0)
                                {
                                    string client = dsGroups.Tables[0].Rows[0]["client"].ToString();
                                    string grid   = dsGroups.Tables[0].Rows[0]["grid"].ToString();
                                    string domain = dsGroups.Tables[0].Rows[0]["domain"].ToString();
                                    // Second, add the groups.
                                    foreach (DataRow drGroup in dsGroups.Tables[0].Rows)
                                    {
                                        if (String.IsNullOrEmpty(strError) == false)
                                        {
                                            break;
                                        }
                                        AvamarReturnType restore = oAvamarRegistration.API(oWebService.AddAvamarGroup(grid, domain, client, drGroup["group"].ToString()));
                                        if (restore.Error == true)
                                        {
                                            strError = restore.Message;
                                        }
                                    }
                                    // Third, remove the /Decom group
                                    AvamarReturnType decom = oAvamarRegistration.API(oWebService.DeleteAvamarGroup(grid, domain, client, oAvamar.DecomGroup));
                                    if (decom.Error == false)
                                    {
                                        // Fourth, recommission the saved decom groups.
                                        oAvamar.UpdateDecom(client);
                                    }
                                    else
                                    {
                                        strError = decom.Message;
                                    }
                                }
                                if (String.IsNullOrEmpty(strError))
                                {
                                    oLog.AddEvent(lblName.Text, lblSerial.Text, "RECOMMISSION: Avamar completed.", LoggingType.Information);
                                }
                                else
                                {
                                    oLog.AddEvent(lblName.Text, lblSerial.Text, "RECOMMISSION: Avamar encountered an error = " + strError, LoggingType.Error);
                                }
                            }
                            // Add log entry
                            oLog.AddEvent(lblName.Text, lblSerial.Text, "Asset Recommissioned (Client = " + oUser.GetFullName(intUser) + ")", LoggingType.Information);
                        }
                        else
                        {
                            // Manual recommission - just delete the resource request to get out of the person's queue
                            int intResource = Int32.Parse(chkDevice.ToolTip.Substring(1));
                            oResourceRequest.UpdateStatusOverall(intResource, -2);
                        }
                    }
                }
            }
            Response.Redirect(Request.Path + "?assets=" + strAssets);
        }
Beispiel #8
0
        protected void Page_Load(object sender, EventArgs e)
        {
            RequestItems    oRequestItem    = new RequestItems(intProfile, dsn);
            RequestFields   oRequestField   = new RequestFields(intProfile, dsn);
            ServiceRequests oServiceRequest = new ServiceRequests(intProfile, dsn);
            Services        oService        = new Services(intProfile, dsn);
            int             intRequest      = Int32.Parse(Request.QueryString["rid"]);
            string          strStatus       = oServiceRequest.Get(intRequest, "checkout");
            DataSet         dsItems         = oRequestItem.GetForms(intRequest);
            int             intItem         = 0;
            int             intService      = 0;
            int             intNumber       = 0;

            if (dsItems.Tables[0].Rows.Count > 0)
            {
                bool boolBreak = false;
                foreach (DataRow drItem in dsItems.Tables[0].Rows)
                {
                    if (boolBreak == true)
                    {
                        break;
                    }
                    if (drItem["done"].ToString() == "0")
                    {
                        intItem    = Int32.Parse(drItem["itemid"].ToString());
                        intService = Int32.Parse(drItem["serviceid"].ToString());
                        intNumber  = Int32.Parse(drItem["number"].ToString());
                        boolBreak  = true;
                    }
                    if (intItem > 0 && (strStatus == "1" || strStatus == "2"))
                    {
                        bool   boolSuccess = true;
                        string strResult   = oService.GetName(intService) + " Completed";
                        string strError    = oService.GetName(intService) + " Error";
                        // ********* BEGIN PROCESSING **************
                        DNS oDNS = new DNS(intProfile, dsn);
                        strResult = "";
                        strError  = "";
                        if (intEnvironment < 3)
                        {
                            intEnvironment = 3;
                        }
                        Variables oVariable = new Variables(intEnvironment);
                        Requests  oRequest  = new Requests(intProfile, dsn);
                        Users     oUser     = new Users(intProfile, dsn);
                        DataSet   ds        = oDNS.GetDNS(intRequest, intItem, intNumber);
                        Domains   oDomain   = new Domains(intProfile, dsn);
                        if (ds.Tables[0].Rows.Count > 0)
                        {
                            string strAction       = ds.Tables[0].Rows[0]["action"].ToString();
                            string strNameCurrent  = ds.Tables[0].Rows[0]["name_current"].ToString();
                            string strIPCurrent    = ds.Tables[0].Rows[0]["ip_current"].ToString();
                            string strAliasCurrent = ds.Tables[0].Rows[0]["alias_current"].ToString();
                            string strNameNew      = ds.Tables[0].Rows[0]["name_new"].ToString();
                            string strIPNew        = ds.Tables[0].Rows[0]["ip_new"].ToString();
                            string strAliasNew     = ds.Tables[0].Rows[0]["alias_new"].ToString();
                            string strDomain       = ds.Tables[0].Rows[0]["domain"].ToString();
                            string strObject       = ds.Tables[0].Rows[0]["value"].ToString();
                            int    intUser         = oRequest.GetUser(intRequest);

                            // Connect to DNS to process the request
                            System.Net.NetworkCredential oCredentials = new System.Net.NetworkCredential(oVariable.ADUser(), oVariable.ADPassword(), oVariable.Domain());
                            ClearViewWebServices         oWebService  = new ClearViewWebServices();
                            oWebService.Timeout     = Int32.Parse(ConfigurationManager.AppSettings["WS_TIMEOUT"]);
                            oWebService.Credentials = oCredentials;
                            oWebService.Url         = oVariable.WebServiceURL();
                            Settings oSetting        = new Settings(0, dsn);
                            bool     boolDNS_QIP     = oSetting.IsDNS_QIP();
                            bool     boolDNS_Bluecat = oSetting.IsDNS_Bluecat();

                            string strWebServiceResult = "";

                            switch (strAction)
                            {
                            case "CREATE":
                                if (strIPNew != "" && strNameNew != "")
                                {
                                    if (boolDNS_QIP == true)
                                    {
                                        strWebServiceResult = oWebService.CreateDNSforPNC(strIPNew, strNameNew, strObject, strAliasNew, oVariable.DNS_Domain(), oVariable.DNS_NameService(), oVariable.DNS_DynamicDNSUpdate(), intProfile, 0, true);
                                        if (strWebServiceResult == "SUCCESS")
                                        {
                                            strResult += "<p>The following record was successfully created in QIP DNS...</p><p>" + oDNS.GetDNSBody(intRequest, intItem, intNumber, true, intEnvironment) + "</p>";
                                        }
                                        else if (strWebServiceResult.StartsWith("***DUPLICATE") == true)
                                        {
                                            strResult += "<p>The following record was already created in QIP DNS...</p><p>" + oDNS.GetDNSBody(intRequest, intItem, intNumber, true, intEnvironment) + "</p>";
                                        }
                                        else if (strWebServiceResult.StartsWith("***CONFLICT") == true)
                                        {
                                            strError += "<p>A CONFLICT occurred when attempting to create the following record in QIP DNS...</p><p>" + oDNS.GetDNSBody(intRequest, intItem, intNumber, true, intEnvironment) + "</p><p>Conflict Message:</p><p>" + strWebServiceResult + "</p>";
                                        }
                                        else
                                        {
                                            strError += "<p>An ERROR occurred when attempting to create the following record in QIP DNS...</p><p>" + oDNS.GetDNSBody(intRequest, intItem, intNumber, true, intEnvironment) + "</p><p>Error Message:</p><p>" + strWebServiceResult + "</p>";
                                        }
                                    }
                                    if (boolDNS_Bluecat == true)
                                    {
                                        strWebServiceResult = oWebService.CreateBluecatDNS(strIPNew, strNameNew, strNameNew, "");
                                        if (strWebServiceResult == "SUCCESS")
                                        {
                                            strResult += "<p>The following record was successfully created in BlueCat DNS...</p><p>" + oDNS.GetDNSBody(intRequest, intItem, intNumber, true, intEnvironment) + "</p>";
                                        }
                                        else if (strWebServiceResult.StartsWith("***DUPLICATE") == true)
                                        {
                                            strResult += "<p>The following record was already created in BlueCat DNS...</p><p>" + oDNS.GetDNSBody(intRequest, intItem, intNumber, true, intEnvironment) + "</p>";
                                        }
                                        else if (strWebServiceResult.StartsWith("***CONFLICT") == true)
                                        {
                                            strError += "<p>A CONFLICT occurred when attempting to create the following record in BlueCat DNS...</p><p>" + oDNS.GetDNSBody(intRequest, intItem, intNumber, true, intEnvironment) + "</p><p>Conflict Message:</p><p>" + strWebServiceResult + "</p>";
                                        }
                                        else
                                        {
                                            strError += "<p>An ERROR occurred when attempting to create the following record in BlueCat DNS...</p><p>" + oDNS.GetDNSBody(intRequest, intItem, intNumber, true, intEnvironment) + "</p><p>Error Message:</p><p>" + strWebServiceResult + "</p>";
                                        }
                                    }
                                }
                                else
                                {
                                    strError = "<p>Invalid Parameters...</p>";
                                }

                                break;

                            case "UPDATE":
                                string strIP    = (strIPNew != "" ? strIPNew : strIPCurrent);
                                string strName  = (strNameNew != "" ? strNameNew : strNameCurrent);
                                string strAlias = (((strAliasCurrent != "" && strAliasNew == "") || strAliasNew != "") ? strAliasNew : strAliasCurrent);
                                if (strObject == "")
                                {
                                    strObject = "Server";
                                }
                                if (boolDNS_QIP == true)
                                {
                                    strWebServiceResult = oWebService.UpdateDNSforPNC(strIP, strName, strObject, strAlias, oVariable.DNS_Domain(), oVariable.DNS_NameService(), oVariable.DNS_DynamicDNSUpdate(), intProfile, 0, true);
                                    if (strWebServiceResult == "SUCCESS")
                                    {
                                        strResult += "<p>The following record was successfully updated in QIP DNS...</p><p>" + oDNS.GetDNSBody(intRequest, intItem, intNumber, true, intEnvironment) + "</p>";
                                    }
                                    else if (strWebServiceResult.StartsWith("***DUPLICATE") == true)
                                    {
                                        strResult += "<p>The following record was already updated in QIP DNS...</p><p>" + oDNS.GetDNSBody(intRequest, intItem, intNumber, true, intEnvironment) + "</p>";
                                    }
                                    else if (strWebServiceResult.StartsWith("***CONFLICT") == true)
                                    {
                                        strError += "<p>A CONFLICT occurred when attempting to update the following record in QIP DNS...</p><p>" + oDNS.GetDNSBody(intRequest, intItem, intNumber, true, intEnvironment) + "</p><p>Conflict Message:</p><p>" + strWebServiceResult + "</p>";
                                    }
                                    else
                                    {
                                        strError += "<p>An ERROR occurred when attempting to update the following record in QIP DNS...</p><p>" + oDNS.GetDNSBody(intRequest, intItem, intNumber, true, intEnvironment) + "</p><p>Error Message:</p><p>" + strWebServiceResult + "</p>";
                                    }
                                }
                                if (boolDNS_Bluecat == true)
                                {
                                    strWebServiceResult = oWebService.UpdateBluecatDNS(strIP, strName, strNameNew, "");
                                    if (strWebServiceResult == "SUCCESS")
                                    {
                                        strResult += "<p>The following record was successfully updated in BlueCat DNS...</p><p>" + oDNS.GetDNSBody(intRequest, intItem, intNumber, true, intEnvironment) + "</p>";
                                    }
                                    else if (strWebServiceResult.StartsWith("***DUPLICATE") == true)
                                    {
                                        strResult += "<p>The following record was already updated in BlueCat DNS...</p><p>" + oDNS.GetDNSBody(intRequest, intItem, intNumber, true, intEnvironment) + "</p>";
                                    }
                                    else if (strWebServiceResult.StartsWith("***CONFLICT") == true)
                                    {
                                        strError += "<p>A CONFLICT occurred when attempting to update the following record in BlueCat DNS...</p><p>" + oDNS.GetDNSBody(intRequest, intItem, intNumber, true, intEnvironment) + "</p><p>Conflict Message:</p><p>" + strWebServiceResult + "</p>";
                                    }
                                    else
                                    {
                                        strError += "<p>An ERROR occurred when attempting to update the following record in BlueCat DNS...</p><p>" + oDNS.GetDNSBody(intRequest, intItem, intNumber, true, intEnvironment) + "</p><p>Error Message:</p><p>" + strWebServiceResult + "</p>";
                                    }
                                }
                                break;

                            case "DELETE":
                                if (boolDNS_QIP == true)
                                {
                                    if (strIPCurrent != "")
                                    {
                                        strWebServiceResult = oWebService.DeleteDNSforPNC(strIPCurrent, "", intProfile, true);
                                    }
                                    else if (strNameCurrent != "")
                                    {
                                        strWebServiceResult = oWebService.DeleteDNSforPNC("", strNameCurrent, intProfile, true);
                                    }

                                    if (strWebServiceResult == "SUCCESS")
                                    {
                                        strResult += "<p>The following record was successfully deleted in QIP DNS...</p><p>" + oDNS.GetDNSBody(intRequest, intItem, intNumber, true, intEnvironment) + "</p>";
                                    }
                                    else
                                    {
                                        strError += "<p>An ERROR occurred when attempting to delete the following record in QIP DNS...</p><p>" + oDNS.GetDNSBody(intRequest, intItem, intNumber, true, intEnvironment) + "</p><p>Error Message:</p><p>" + strWebServiceResult + "</p>";
                                    }
                                }
                                if (boolDNS_Bluecat == true)
                                {
                                    if (strIPCurrent != "")
                                    {
                                        strWebServiceResult = oWebService.DeleteBluecatDNS(strIPCurrent, "", false, false);
                                    }
                                    else if (strNameCurrent != "")
                                    {
                                        strWebServiceResult = oWebService.DeleteBluecatDNS("", strNameCurrent, false, false);
                                    }

                                    if (strWebServiceResult == "SUCCESS")
                                    {
                                        strResult += "<p>The following record was successfully deleted in BlueCat DNS...</p><p>" + oDNS.GetDNSBody(intRequest, intItem, intNumber, true, intEnvironment) + "</p>";
                                    }
                                    else
                                    {
                                        strError += "<p>An ERROR occurred when attempting to delete the following record in BlueCat DNS...</p><p>" + oDNS.GetDNSBody(intRequest, intItem, intNumber, true, intEnvironment) + "</p><p>Error Message:</p><p>" + strWebServiceResult + "</p>";
                                    }
                                }
                                break;
                            }
                            if (strResult != "")
                            {
                                oRequest.AddResult(intRequest, intItem, intNumber, oService.GetName(intService), "", strResult, intEnvironment, (oService.Get(intService, "notify_client") == "1"), oUser.GetName(intUser));
                            }
                            else if (strError != "")
                            {
                                oRequest.AddResult(intRequest, intItem, intNumber, oService.GetName(intService), strError, "", intEnvironment, (oService.Get(intService, "notify_client") == "1"), oUser.GetName(intUser));
                            }
                            oDNS.UpdateDNSCompleted(intRequest, intItem, intNumber);
                        }
                        if (strResult == "")
                        {
                            boolSuccess = false;
                        }
                        // ******** END PROCESSING **************
                        if (oService.Get(intService, "automate") == "1" && boolSuccess == true)
                        {
                            strDone += "<table border=\"0\"><tr><td><img src=\"/images/bigCheck.gif\" border=\"0\" align=\"absmiddle\"/></td><td class=\"biggerbold\">" + strResult + "</td></tr></table>";
                        }
                        else
                        {
                            if (boolSuccess == false)
                            {
                                strDone += "<table border=\"0\"><tr><td><img src=\"/images/bigError.gif\" border=\"0\" align=\"absmiddle\"/></td><td class=\"biggerbold\">" + strError + "</td></tr></table>";
                            }
                            else
                            {
                                strDone += "<table border=\"0\"><tr><td><img src=\"/images/bigCheck.gif\" border=\"0\" align=\"absmiddle\"/></td><td class=\"biggerbold\">" + oService.GetName(intService) + " Submitted</td></tr></table>";
                            }
                        }
                        oRequestItem.UpdateFormDone(intRequest, intItem, intNumber, 1);
                    }
                }
            }
        }
        protected void btnGo_Click(Object Sender, EventArgs e)
        {
            boolVMFound = false;
            Response.Write(DateTime.Now.ToString() + "<br/>");

            Variables oVariable = new Variables(999);

            System.Net.NetworkCredential oCredentials = new System.Net.NetworkCredential(oVariable.ADUser(), oVariable.ADPassword(), oVariable.Domain());
            ClearViewWebServices         oWS          = new ClearViewWebServices();

            oWS.Timeout     = Int32.Parse(ConfigurationManager.AppSettings["WS_TIMEOUT"]);
            oWS.Credentials = oCredentials;
            //oWS.Url = oVariable.WebServiceURL();
            oWS.Url = "http://localhost:55030/ClearViewWebServices.asmx";

            string path = oWS.GetVMwarePath(txtVM.Text, "http://localhost:53744/", "OpHAa0tdJBAdeJALK65pMptAyK2SFcismq7QZNB9rMd4Fuhp6K8Zqx8z5gdA8KIGsi1YLTV7E57alz5cDMW5escYrHVTKbaReGLyDtNmYauuA8oFka6vXNCafcGe8cwD5q5OYHJk8Kgd7RyttpIJeO4BeLrAWJoWN1zkcJRNAWwnGxcyPnUSDXxqwEJmqjyzvuzfsmqTH5jssQ4QI3UJYFs0DiYHaEyrz71l86fC7blINf8PK2OwxYKZcIMjxSTcI13uZTSLYsMXuUmykj7h0b3Lybjzu5eori9WmN00kdHflWFrvo9pUMmH7s7XKsq3oyFlUAlGth6XDYzKG1dg5ZDP6CZ4Qcq2WN1XquH5dC6NPzdj2wrSok7x30prKrZq0eaZ6LtluhdD309GzPbuVINMQC4AfpuVMPXLxnnrcfxghEFd0S25pFFsAxjDR3gfXr0ndxilCTrPjGFm70JwwzGgkElaeTKj8ttZNsaCKQCFoZi337G0");

            while (path.Contains("\""))
            {
                path = path.Replace("\"", "");
            }
            string[] paths = path.Split(new string[] { "|" }, StringSplitOptions.RemoveEmptyEntries);
            if (paths.Length >= 3)
            {
                string strConnect = oVMware.ConnectDEBUG("https://" + paths[0] + ".pncbank.com/sdk", 999, "");
                if (strConnect == "")
                {
                    _service = oVMware.GetService();
                    _sic     = oVMware.GetSic();
                    //ManagedObjectReference datacenterRef = oVMWare.GetDataCenter();
                    //ManagedObjectReference vmFolderRef = oVMWare.GetVMFolder(datacenterRef);
                    //ManagedObjectReference clusterRef = oVMWare.GetCluster(strCluster);
                    //ManagedObjectReference resourcePoolRootRef = (ManagedObjectReference)oVMWare.getObjectProperty(clusterRef, "resourcePool");
                    ManagedObjectReference oComputer = GetVM(txtVM.Text, paths);
                    if (oComputer != null)
                    {
                        VirtualMachineConfigInfo oInfo = (VirtualMachineConfigInfo)oVMware.getObjectProperty(oComputer, "config");
                        Response.Write(oInfo.uuid + "<br/>");
                    }
                    if (_service != null)
                    {
                        //ServiceContent _sic = oVMware.GetSic();
                        _service.Abort();
                        if (_service.Container != null)
                        {
                            _service.Container.Dispose();
                        }
                        try
                        {
                            _service.Logout(_sic.sessionManager);
                        }
                        catch { }
                        _service.Dispose();
                        _service = null;
                        _sic     = null;
                        //oLog.AddEvent(intAnswer, strName, strSerial, "Logged out of VMware", LoggingType.Information);
                    }
                }
            }
            Response.Write(DateTime.Now.ToString() + "<br/>");
        }
Beispiel #10
0
        private bool CheckIP(int _answerid, int _ip1, int _ip2, int _ip3, int _ip4)
        {
            if (_ip1 > 0 && _ip1 < 256 && _ip2 > 0 && _ip2 < 256 && _ip3 > 0 && _ip3 < 256 && _ip4 > 0 && _ip4 < 256)
            {
                string strIP = _ip1.ToString() + "." + _ip2.ToString() + "." + _ip3.ToString() + "." + _ip4.ToString();
                //  Make sure PING times out (that it is not in use)
                Ping   oPing     = new Ping();
                string strStatus = "";
                try
                {
                    PingReply oReply = oPing.Send(strIP);
                    strStatus = oReply.Status.ToString().ToUpper();
                }
                catch { }
                if (strStatus == "SUCCESS")
                {
                    boolValidatePing = true;
                    return(false);
                }


                // Make sure that this IP address does not exist in DNS (only if PNC)
                Classes oClass   = new Classes(intProfile, dsn);
                int     intClass = Int32.Parse(oForecast.GetAnswer(_answerid, "classid"));
                if (oClass.Get(intClass, "pnc") == "1")
                {
                    Variables oVariableWS = new Variables(intEnvironment);
                    System.Net.NetworkCredential oCredentials = new System.Net.NetworkCredential(oVariableWS.ADUser(), oVariableWS.ADPassword(), oVariableWS.Domain());
                    ClearViewWebServices         oWS          = new ClearViewWebServices();
                    oWS.Timeout     = Int32.Parse(ConfigurationManager.AppSettings["WS_TIMEOUT"]);
                    oWS.Credentials = oCredentials;
                    oWS.Url         = oVariableWS.WebServiceURL();
                    Settings oSetting        = new Settings(0, dsn);
                    bool     boolDNS_QIP     = oSetting.IsDNS_QIP();
                    bool     boolDNS_Bluecat = oSetting.IsDNS_Bluecat();
                    if (boolDNS_QIP == true)
                    {
                        string strSearchName = oWS.SearchDNSforPNC(strIP, "", false, true);
                        if (strSearchName.Trim().ToUpper() != "***NOTFOUND")
                        {
                            boolValidateDNS = true;
                            return(false);
                        }
                    }
                    if (boolDNS_Bluecat == true)
                    {
                        string strSearchName = oWS.SearchBluecatDNS(strIP, "");
                        if (strSearchName.Trim().ToUpper() != "***NOTFOUND")
                        {
                            boolValidateDNS = true;
                            return(false);
                        }
                    }
                }


                // Make sure it is not already assigned in database
                IPAddresses oIPAddresses = new IPAddresses(intProfile, dsnIP, dsn);
                DataSet     dsIP         = oIPAddresses.Get(_ip1, _ip2, _ip3, _ip4);
                foreach (DataRow drIP in dsIP.Tables[0].Rows)
                {
                    if (drIP["available"].ToString() == "0")
                    {
                        boolValidateDB = true;
                        return(false);

                        break;
                    }
                }

                return(true);
            }
            else
            {
                boolValidateFormat = true;
                return(false);
            }
        }
Beispiel #11
0
        public void Activations(int EnvironmentID)
        {
            // Setup Classes
            Servers            oServer             = new Servers(0, dsn);
            AvamarRegistration oAvamarRegistration = new AvamarRegistration(0, dsn);
            Log       oLog      = new Log(0, dsn);
            Variables oVariable = new Variables(EnvironmentID);

            // Setup Webservice for querying via SSH
            System.Net.NetworkCredential oCredentialsDNS = new System.Net.NetworkCredential(oVariable.ADUser(), oVariable.ADPassword(), oVariable.Domain());
            ClearViewWebServices         oWebService     = new ClearViewWebServices();

            oWebService.Url = oVariable.WebServiceURL();

            DataSet dsActivations = oServer.GetAvamarActivations();

            if (dsActivations.Tables[0].Rows.Count > 0)
            {
                oLog.AddEvent("", "", "Get avamar activations (" + dsActivations.Tables[0].Rows.Count.ToString() + ")", LoggingType.Debug);
                foreach (DataRow drActivation in dsActivations.Tables[0].Rows)
                {
                    ClearResults();

                    int intServer = Int32.Parse(drActivation["id"].ToString());
                    oServer.UpdateAvamarActivationStarted(intServer, DateTime.Now.ToString());
                    int    intAnswer = Int32.Parse(drActivation["answerid"].ToString());
                    string strName   = drActivation["servername"].ToString();
                    string strGrid   = drActivation["grid"].ToString();
                    string strDomain = drActivation["domain"].ToString();
                    string strGroup1 = drActivation["group1"].ToString();
                    string strGroup2 = drActivation["group2"].ToString();
                    string strGroup3 = drActivation["group3"].ToString();

                    oLog.AddEvent(intAnswer, strName, "", "Starting automated Avamar activation", LoggingType.Information);
                    string strError   = "";
                    string strSuccess = "";

                    try
                    {
                        // Activate client
                        AvamarReturnType activate = oAvamarRegistration.API(oWebService.ActivateAvamarClient(strGrid, strDomain, strName));
                        if (activate.Error == false)
                        {
                            strSuccess = activate.Message;
                            // Wait 1/2 minute for synchronization
                            oLog.AddEvent(intAnswer, strName, "", "Activation script complete = " + activate.Message + ".", LoggingType.Information);
                            bool HasActivated = false;
                            for (int ii = 0; ii < 10 && HasActivated == false; ii++)
                            {
                                int activateCount = ii + 1;
                                oLog.AddEvent(intAnswer, strName, "", "Checking activation status (" + activateCount.ToString() + " of 10)...", LoggingType.Debug);
                                AvamarReturnType activated = oAvamarRegistration.API(oWebService.GetAvamarClient(strGrid, strDomain, strName));
                                if (activated.Error == false)
                                {
                                    foreach (XmlNode node in activated.Nodes)
                                    {
                                        if (node["Attribute"].InnerText == "Activated")
                                        {
                                            if (node["Value"].InnerText.Trim().ToUpper() == "YES")
                                            {
                                                HasActivated = true;
                                                oLog.AddEvent(intAnswer, strName, "", "Client has activated!", LoggingType.Information);
                                            }
                                            else
                                            {
                                                oLog.AddEvent(intAnswer, strName, "", "Client is not active. Waiting 30 seconds before retrying...", LoggingType.Debug);
                                                Thread.Sleep(30000);
                                            }
                                            break;
                                        }
                                    }
                                }
                                else
                                {
                                    strError = "Error while activating - " + activated.Message;
                                    break;
                                }
                            }

                            if (String.IsNullOrEmpty(strError))
                            {
                                if (HasActivated)
                                {
                                    // Initiate backup
                                    oLog.AddEvent(intAnswer, strName, "", "Initiating backup...", LoggingType.Information);
                                    AvamarReturnType start = oAvamarRegistration.API(oWebService.StartAvamarBackup(strGrid, strDomain, strGroup1, strName));
                                    if (start.Error)
                                    {
                                        strError = start.Message + " (" + start.Code + ")";
                                    }
                                    else if (String.IsNullOrEmpty(strGroup2) == false)
                                    {
                                        oLog.AddEvent(intAnswer, strName, "", "Backup for " + strGroup1 + " started = " + start.Message, LoggingType.Information);
                                        AvamarReturnType start2 = oAvamarRegistration.API(oWebService.StartAvamarBackup(strGrid, strDomain, strGroup2, strName));
                                        if (start2.Error)
                                        {
                                            strError = start2.Message + " (" + start2.Code + ")";
                                        }
                                        else if (String.IsNullOrEmpty(strGroup3) == false)
                                        {
                                            oLog.AddEvent(intAnswer, strName, "", "Backup for " + strGroup2 + " started = " + start2.Message, LoggingType.Information);
                                            AvamarReturnType start3 = oAvamarRegistration.API(oWebService.StartAvamarBackup(strGrid, strDomain, strGroup3, strName));
                                            if (start3.Error)
                                            {
                                                strError = start3.Message + " (" + start3.Code + ")";
                                            }
                                            else
                                            {
                                                oLog.AddEvent(intAnswer, strName, "", "Backup for " + strGroup3 + " started = " + start3.Message, LoggingType.Information);
                                            }
                                        }
                                    }
                                }
                                else
                                {
                                    strError = "Client has not activated after 5 minutes";
                                }
                            }
                        }
                        else
                        {
                            strError = activate.Message + " (" + activate.Code + ")";
                        }
                    }
                    catch (Exception exError)
                    {
                        strError = exError.Message;
                        if (exError.InnerException != null)
                        {
                            strError += " ~ " + exError.InnerException.Message;
                        }
                    }

                    if (strError != "")
                    {
                        oLog.AddEvent(intAnswer, strName, "", strError, LoggingType.Error);
                        oServer.UpdateAvamarActivationCompleted(intServer, "", strError, DateTime.Now.ToString(), 1);
                        oServer.AddError(0, 0, 0, intServer, 906, strError);
                    }
                    else
                    {
                        oLog.AddEvent(intAnswer, strName, "", "Activation completed and backup initiated", LoggingType.Information);
                        oServer.UpdateAvamarActivationCompleted(intServer, "", strSuccess, DateTime.Now.ToString(), 0);
                        oServer.AddAvamarBackup(intServer, strName, strGrid, strDomain, strGroup1);
                    }
                }
            }
        }
Beispiel #12
0
        private void LoadServer(DataRow dr)
        {
            int intRequest = Int32.Parse(dr["requestid"].ToString());
            int intItem    = Int32.Parse(dr["itemid"].ToString());
            int intNumber  = Int32.Parse(dr["number"].ToString());

            string strNameNew  = dr["name_new"].ToString();
            string strIPNew    = dr["ip_new"].ToString();
            string strAliasNew = dr["alias_new"].ToString();

            ddlType.SelectedValue = dr["typeid"].ToString();
            txtName.Text          = strNameNew;
            char[]   strIPSplit = { '.' };
            string[] strIP      = strIPNew.Split(strIPSplit);
            txtIP1.Text = strIP[0];
            txtIP2.Text = strIP[1];
            txtIP3.Text = strIP[2];
            txtIP4.Text = strIP[3];

            if (strAliasNew != "NONE")
            {
                // Show Confirmation Page
                lblName.Text       = strNameNew;
                lblIP.Text         = strIPNew;
                lblAlias.Text      = strAliasNew;
                panConfirm.Visible = true;
                strConfirm         = oDNS.GetDNSBody(intRequest, intItem, intNumber, true, intEnvironment);
                btnNext.Attributes.Add("onclick", "return ValidateCheck('" + chkAgree.ClientID + "','Please check the box stating that you agree to the disclaimer notice')" +
                                       " && ProcessButton(this)" +
                                       ";");
                btnDiscard.Attributes.Add("onclick", "return confirm('WARNING: Starting over will discard all the changes you have made.\\n\\nAre you sure you want to continue?') && ProcessButton(this);");
                btnContinue.Visible = false;
                btnConfirm.Visible  = false;
            }
            else
            {
                panSearch.Visible = true;
                btnNext.Visible   = false;

                // Get Record from DNS
                System.Net.NetworkCredential oCredentials = new System.Net.NetworkCredential(oVariable.ADUser(), oVariable.ADPassword(), oVariable.Domain());
                ClearViewWebServices         oWebService  = new ClearViewWebServices();
                oWebService.Timeout     = Int32.Parse(ConfigurationManager.AppSettings["WS_TIMEOUT"]);
                oWebService.Credentials = oCredentials;
                oWebService.Url         = oVariable.WebServiceURL();
                bool boolFoundName = false;
                bool boolFoundIP   = false;
                // Get Values
                if (strNameNew != "")
                {
                    string strTemp = "";
                    if (boolDNS_QIP == true)
                    {
                        strTemp = oWebService.SearchDNSforPNC("", strNameNew, false, true);
                        if (strTemp.StartsWith("***") == false)
                        {
                            boolFoundName = true;
                        }
                    }
                    if (boolDNS_Bluecat == true)
                    {
                        strTemp = oWebService.SearchBluecatDNS("", strNameNew);
                        if (strTemp.StartsWith("***") == false)
                        {
                            boolFoundName = true;
                        }
                    }
                }
                if (strIPNew != "")
                {
                    string strTemp = "";
                    if (boolDNS_QIP == true)
                    {
                        strTemp = oWebService.SearchDNSforPNC(strIPNew, "", false, true);
                        if (strTemp.StartsWith("***") == false)
                        {
                            boolFoundIP = true;
                        }
                    }
                    if (boolDNS_Bluecat == true)
                    {
                        strTemp = oWebService.SearchBluecatDNS(strIPNew, "");
                        if (strTemp.StartsWith("***") == false)
                        {
                            boolFoundIP = true;
                        }
                    }
                }

                //DataSet ds = oServer.GetDNS(strNameNew);
                //if (ds.Tables[0].Rows.Count == 0)
                if (boolFoundName == false && boolFoundIP == false)
                {
                    //if (boolFound == true)
                    //{
                    //    btnReset.Enabled = false;
                    //    btnConfirm.Visible = false;
                    //    panExist.Visible = true;
                    //    lblExist.Text = "This device already exists in DNS. Please try again...";
                    //}
                    //else
                    //{
                    bool boolPermit = true;
                    panAlias.Visible = boolDNS_QIP;
                    panShow.Visible  = true;
                    lblName.Text     = strNameNew;
                    lblIP.Text       = strIPNew;
                    lblAlias.Text    = strAliasNew;

                    // Check Permission and either show read only, or permit edit
                    if (oApplication.Get(intApplication, "dns") == "1" || oUser.IsAdmin(intProfile))
                    {
                        boolPermit = true;
                    }

                    if (boolPermit == true)
                    {
                        btnContinue.Visible = false;
                        ddlType.Enabled     = false;
                        txtName.Enabled     = false;
                        txtIP1.Enabled      = false;
                        txtIP2.Enabled      = false;
                        txtIP3.Enabled      = false;
                        txtIP4.Enabled      = false;
                        txtAlias.Enabled    = true;
                        lstAlias.Enabled    = true;
                        txtContact1.Enabled = true;
                        txtContact2.Enabled = true;
                        btnAdd.Attributes.Add("onclick", "return AddDNS('" + lstAlias.ClientID + "','" + txtAlias.ClientID + "','" + hdnAlias.ClientID + "');");
                        btnEdit.Attributes.Add("onclick", "return EditDNS('" + lstAlias.ClientID + "','" + txtAlias.ClientID + "','" + hdnAlias.ClientID + "');");
                        btnRemove.Attributes.Add("onclick", "return RemoveDNS('" + lstAlias.ClientID + "','" + hdnAlias.ClientID + "');");
                        string strChange = "";
                        if (boolChange == true)
                        {
                            panChange.Visible = true;
                            strChange         = " && ValidateTextLength('" + txtChange.ClientID + "', 'Please enter a valid change control number\\n\\n - Must start with either \"CHG\" or \"PTM\"\\n - Must be exactly 10 characters in length', 10, ['CHG','PTM'], ['CHG0000000','PTM0000000','CHG1111111','PTM1111111','CHG9999999','PTM9999999','CHGXXXXXXX','PTMXXXXXXX'])";
                        }
                        btnConfirm.Attributes.Add("onclick", "return ValidateHidden0('" + hdnContact1.ClientID + "','" + txtContact1.ClientID + "','Please enter the LAN ID of your contact # 1')" +
                                                  " && ValidateHidden0('" + hdnContact2.ClientID + "','" + txtContact2.ClientID + "','Please enter the LAN ID of your contact # 2')" +
                                                  strChange +
                                                  " && ValidateText('" + txtReason.ClientID + "','Please enter a reason')" +
                                                  " && ProcessButton(this)" +
                                                  ";");
                    }
                    else
                    {
                        btnConfirm.Visible = false;
                        panAccess.Visible  = true;
                        btnAdd.Enabled     = false;
                        btnEdit.Enabled    = false;
                        btnRemove.Enabled  = false;
                        DataSet dsDecoms = oApplication.GetDecoms();
                        if (dsDecoms.Tables[0].Rows.Count > 0)
                        {
                            strContacts += "<tr><td colspan=\"2\">Alternatively, you can contact a resource from one of the following departments:</td></tr>";
                            foreach (DataRow drDecom in dsDecoms.Tables[0].Rows)
                            {
                                strContacts += "<tr><td></td><td>" + drDecom["name"].ToString() + "</td></tr>";
                            }
                        }
                    }
                    //}
                }
                else
                {
                    btnReset.Enabled   = false;
                    btnConfirm.Visible = false;
                    panExist.Visible   = true;
                    lblExist.Text      = "The " + (boolFoundName ? "device name" : "IP address") + " is already registered in DNS. Please try again...";
                    //lblExist.Text = "This device already exists in the database. Please try again...";
                }
            }
        }
Beispiel #13
0
        protected void btnDecom_Click(object sender, EventArgs e)
        {
            Variables oVariable = new Variables((int)CurrentEnvironment.PNCNT_DEV);
            string    grid      = "yb19-avr01-01.test.pncbank.com";
            string    domain    = "/BRII";
            string    client    = "WDCLV015A.pncbank.com";
            string    strError  = "";


            Avamar               oAvamar             = new Avamar(0, dsn);
            AvamarRegistration   oAvamarRegistration = new AvamarRegistration(0, dsn);
            ClearViewWebServices oWebService         = new ClearViewWebServices();

            System.Net.NetworkCredential oCredentialsDNS = new System.Net.NetworkCredential(oVariable.ADUser(), oVariable.ADPassword(), oVariable.Domain());
            oWebService.Credentials = oCredentialsDNS;
            oWebService.Url         = oVariable.WebServiceURL();

            // First, query for groups.
            AvamarReturnType groups = oAvamarRegistration.API(oWebService.GetAvamarClient(grid, domain, client));

            if (groups.Error == false)
            {
                List <string> members = new List <string>();
                foreach (XmlNode node in groups.Nodes)
                {
                    if (node["Attribute"].InnerText == "Member of Group")
                    {
                        members.Add(node["Value"].InnerText);
                    }
                }

                if (members.Count > 0)
                {
                    // Second, add /Decom group (so there will always be at least one group)
                    AvamarReturnType decom = oAvamarRegistration.API(oWebService.AddAvamarGroup(grid, domain, client, oAvamar.DecomGroup));
                    if (decom.Error == false)
                    {
                        oAvamar.DeleteDecom(client);
                        foreach (string member in members)
                        {
                            if (String.IsNullOrEmpty(strError) == false)
                            {
                                break;
                            }
                            // Third, remove groups (one at a time)
                            AvamarReturnType remove = oAvamarRegistration.API(oWebService.DeleteAvamarGroup(grid, domain, client, member));
                            if (remove.Error == false)
                            {
                                // Fourth, save groups.
                                oAvamar.AddDecom(client, grid, domain, member);
                            }
                            else
                            {
                                strError = remove.Message;
                            }
                        }
                    }
                    else
                    {
                        strError = decom.Message;
                    }
                }
            }
            else
            {
                strError = groups.Message;
            }
        }