예제 #1
0
        protected void btnGo_Click(Object Sender, EventArgs e)
        {
            int intAnswer = 0;

            if (radEnvironment.SelectedItem.Value == "TEST")
            {
                intAnswer = intHostTest;
            }
            if (radEnvironment.SelectedItem.Value == "PROD")
            {
                intAnswer = intHostProd;
            }
            if (intAnswer > 0)
            {
                string strName  = txtName.Text.ToUpper();
                string strName1 = strName.Substring(0, 5);
                strName = strName.Substring(5);
                string strName2 = strName.Substring(0, 3);
                strName = strName.Substring(3);
                string strName3 = strName.Substring(0, 2);
                strName = strName.Substring(2);
                string strName4 = strName.Substring(0, 1);
                strName = strName.Substring(1);
                int     intName = 0;
                DataSet dsNames = SqlHelper.ExecuteDataset(dsn, CommandType.Text, "SELECT * FROM cv_servernames WHERE prefix1 = '" + strName1 + "' AND prefix2 = '" + strName2 + "' AND sitecode = '" + strName3 + "' AND name1 = '" + strName4 + "' AND name2 = '" + strName + "' AND deleted = 0");
                if (dsNames.Tables[0].Rows.Count > 0)
                {
                    intName = Int32.Parse(dsNames.Tables[0].Rows[0]["id"].ToString());
                }
                else
                {
                    ServerName oServerName = new ServerName(0, dsn);
                    intName = oServerName.Add(0, strName1, strName2, strName3, strName4, strName, 0, txtSerial.Text, 0);
                }
                Forecast oForecast  = new Forecast(0, dsn);
                int      intClass   = Int32.Parse(oForecast.GetAnswer(intAnswer, "classid"));
                int      intEnv     = Int32.Parse(oForecast.GetAnswer(intAnswer, "environmentid"));
                int      intAddress = Int32.Parse(oForecast.GetAnswer(intAnswer, "addressid"));
                int      intNumber  = (int)SqlHelper.ExecuteScalar(dsn, CommandType.Text, "SELECT MAX(number) FROM cv_servers WHERE answerid = " + intAnswer.ToString());
                intNumber = intNumber + 1;
                DataSet dsServers    = SqlHelper.ExecuteDataset(dsn, CommandType.Text, "SELECT * FROM cv_servers WHERE answerid = " + intAnswer.ToString());
                DataRow drServer     = dsServers.Tables[0].Rows[0];
                int     intOldServer = Int32.Parse(drServer["id"].ToString());
                SqlHelper.ExecuteNonQuery(dsn, CommandType.Text, "INSERT INTO cv_servers VALUES(" + drServer["requestid"] + "," + drServer["answerid"] + "," + drServer["modelid"] + "," + drServer["csmconfigid"] + "," + drServer["clusterid"] + "," + intNumber.ToString() + "," + drServer["osid"] + "," + drServer["spid"] + "," + drServer["templateid"] + "," + drServer["domainid"] + "," + drServer["test_domainid"] + "," + drServer["infrastructure"] + "," + drServer["dr"] + "," + drServer["dr_exist"] + ",'" + drServer["dr_name"] + "'," + drServer["dr_consistency"] + "," + drServer["dr_consistencyid"] + "," + drServer["configured"] + "," + drServer["local_storage"] + "," + drServer["accounts"] + "," + drServer["fdrive"] + ",0,0," + intName.ToString() + ",'" + drServer["dhcp"] + "',0,999,0,0,null,null,null,0,getdate(),getdate(),0)");
                int   intServer = (int)SqlHelper.ExecuteScalar(dsn, CommandType.Text, "SELECT TOP 1 id FROM cv_servers WHERE answerid = " + intAnswer.ToString() + " ORDER BY created DESC");
                Asset oAsset    = new Asset(0, dsnAsset);
                int   intAsset  = oAsset.Add("", Int32.Parse(Request.Form[hdnParent.UniqueID]), txtSerial.Text.ToUpper(), txtAsset.Text.ToUpper(), (int)AssetStatus.Arrived, intProfile, DateTime.Now, 0, 1);
                oAsset.AddServer(intAsset, (int)AssetStatus.Available, intProfile, DateTime.Now, intClass, intEnv, intAddress, GetRoom(txtRoom.Text), GetRack(txtRack.Text), txtRackPos.Text, txtILO.Text, txtSerial.Text.ToUpper(), txtMAC.Text, Int32.Parse(txtVlan.Text), 0);
                oAsset.AddStatus(intAsset, txtName.Text.ToUpper(), (int)AssetStatus.InUse, intProfile, DateTime.Now);
                Servers oServer = new Servers(0, dsn);
                oServer.AddAsset(intServer, intAsset, intClass, intEnv, 0, 0);
                lblDone.Text = "<img src='/images/bigcheck.gif' border='0' align='absmiddle'/> <b>Finished!</b> ClearView added the host";
            }
            else
            {
                lblDone.Text = "<img src='/images/bigerror.gif' border='0' align='absmiddle'/> <b>Error!</b> Select a Type!";
            }
        }
        protected void CreateClusterAndAddHostsToServer()
        {
            ServerName oServerName        = new ServerName(0, dsn);
            Servers    oServer            = new Servers(0, dsn);
            Cluster    oCluster           = new Cluster(0, dsn);
            int        intClass           = Int32.Parse(ddlClass.SelectedValue);
            int        intEnv             = Int32.Parse(ddlEnvironment.SelectedValue);
            int        intAddress         = Int32.Parse(hdnLocation.Value);
            int        intRequestId       = Int32.Parse(hdnRequestId.Value);
            int        intVMWareClusterId = 0;
            int        intClusterID       = 0;
            int        intSelectedCount   = 0;
            int        intSelectedDRCount = 0;

            DataSet dsAssets = oAsset.GetAssetsByOrder(Int32.Parse(hdnOrderId.Value));

            intSelectedCount   = dsAssets.Tables[0].Rows.Count;
            intSelectedDRCount = dsAssets.Tables[0].Rows.Count;

            intModel = Int32.Parse(ddlModel.SelectedValue);
            if (intOrderType == (int)AssetSharedEnvOrderType.AddCluster)//for Cluster -Add record in Cluster Table
            {
                string strPrefix          = "XCV";
                string strDatastoreNotify = "xassa3x";
                int    intServerName      = oServerName.Add(intClass, intEnv, intAddress, strPrefix, intProfile, "VMWARE_CLUSTER_IM", 1, dsnServiceEditor);
                string strClusterName     = oServerName.GetName(intServerName, 0);
                intVMWareClusterId = oVMWare.AddCluster(intParent, intModel, strClusterName, 0, 0,
                                                        10000, "", strDatastoreNotify, 1, 500, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 100, 2, 100, 500, 100,
                                                        10, 10, 10, 1, 1, 1);
                foreach (ListItem lstOS in chkFunctionVMWARE.Items)
                {
                    if (lstOS.Selected)
                    {
                        oVMWare.AddClusterOS(intVMWareClusterId, Int32.Parse(lstOS.Value));
                    }
                }
                intClusterID = oCluster.Add(intRequestId, strClusterName, intSelectedCount, intSelectedDRCount, 0);
            }
            else if (intOrderType == (int)AssetSharedEnvOrderType.AddHost)
            {
                intVMWareClusterId = Int32.Parse(hdnParentId.Value);
            }

            //For Cluster OR Host -Add Server Assets Table
            if (intOrderType == (int)AssetSharedEnvOrderType.AddCluster ||
                intOrderType == (int)AssetSharedEnvOrderType.AddHost)
            {
                int    intNumber     = 0;
                int    intDomain     = 0;
                int    intOS         = 0;
                int    intSP         = 0;
                string strNodePrefix = "XNV";
                foreach (DataRow drAsset in dsAssets.Tables[0].Rows)
                {
                    //Mark the Asset to Instock
                    //oAsset.UpdateStatus(Int32.Parse(hdnAssetId.Value), "", (int)AssetStatus.InStock, intProfile, DateTime.Now);
                    intNumber++;
                    int intserverId = oServer.Add(intRequestId, 0, intModel, 0, intClusterID, intNumber, intOS, intSP, 0, intDomain, 0, 1, 0, (intSelectedDRCount > 0 ? 1 : 0), 0, "", 0, 0, 1, 1, 1, 1, 0, (oClass.Get(intClass, "pnc") == "1" ? 1 : 0), intVMWareClusterId, 0);
                    int intAsset    = Int32.Parse(drAsset["id"].ToString());
                    oServer.AddAsset(intserverId, intAsset, intClass, intEnvironment, 0, 0);
                    //oServer.UpdateStep(intserverId, 1);
                    oAsset.Update(intAsset, (int)AssetAttribute.Reserve);
                    //string strHostName = "";
                    //oAsset.AddStatus(intAsset, strHostName, (int)AssetStatus.Reserved, intProfile, DateTime.Now);
                    //Based on the asset selection create name for hosts
                    //intServerName = oServerName.Add(intClass, intEnv, intAddress, strNodePrefix, intProfile, oAsset.Get(intAsset, "serial"), 1);
                    //string strHostName = oServerName.GetName(intServerName, 0);
                    //
                }
                //Set the server step to one
                DataSet dsServer = oServer.GetRequests(intRequestId, 1);
                foreach (DataRow dr in dsServer.Tables[0].Rows)
                {
                    oServer.UpdateStep(Int32.Parse(dr["id"].ToString()), 1);
                }
            }
            ////if (Int32.Parse(rblASEOrderType.SelectedValue) == (int)AssetSharedEnvOrderType.AddHost)//for Host -Add record in Host Table
            ////{
            ////    intVMWareClusterId = 123456789;
            ////    int intNumber = 0;
            ////    int intDomain = 0;  // josh
            ////    int intOS = 0;  // josh
            ////    int intSP = 0;  // josh
            ////    string strPrefix = "XNV";
            ////    int intSelectedDRCount = 0;
            ////    foreach (DataListItem dlItem in dlAssetsSelection.Items)
            ////    {
            ////        HiddenField hdnAssetId = (HiddenField)dlItem.FindControl("hdnAssetId");
            ////        CheckBox chkSelectAsset = (CheckBox)dlItem.FindControl("chkSelectAsset");
            ////        if (chkSelectAsset.Checked == true)
            ////        {
            ////            //Mark the Asset to Instock
            ////            //oAsset.UpdateStatus(Int32.Parse(hdnAssetId.Value), "", (int)AssetStatus.InStock, intProfile, DateTime.Now);
            ////            intNumber++;
            ////            int intserverId = oServer.Add(intRequestId, 0, intModel, 0, 0, intNumber, intOS, intSP, 0, intDomain, 0, 1, 0, (intSelectedDRCount > 0 ? 1 : 0), 0, "", 0, 0, 1, 1, 1, 1, 0, (oClass.Get(intClass, "pnc") == "1" ? 1 : 0), intVMWareClusterId, 0);
            ////            int intAsset = Int32.Parse(hdnAssetId.Value);
            ////            oServer.AddAsset(intserverId, intAsset, intClass, intEnvironment, 0, 0);
            ////            //Based on the asset selection create name for hosts
            ////            //intServerName = oServerName.Add(intClass, intEnv, intAddress, strPrefix, intProfile, oAsset.Get(intAsset, "serial"), 1);
            ////            //string strHostName = oServerName.GetName(intServerName, 0);
            ////            //oAsset.AddStatus(intAsset, strHostName, (int)AssetStatus.InUse, intProfile, DateTime.Now);


            ////        }
            ////    }
            ////}
        }