protected void btnRegister_Click(object sender, EventArgs e) { RefreshForm(); ulErrors.Controls.Clear(); bool Valid = true; Valid = AddError(txtName, "Enter a server name", Valid, ValidationRestriction.Basic, Validation.Required, ulErrors, panError); Valid = AddError(ddlBackup, "Select the backup software", Valid, ulErrors, panError); Valid = AddError(txtIPServer, "Enter a valid server IP address", Valid, ValidationRestriction.IPAddress, Validation.Optional, ulErrors, panError); Valid = AddError(txtIPServerVLAN, txtIPServer, "Enter the VLAN of the server IP address", Valid, ValidationRestriction.Numeric, ulErrors, panError); Valid = AddError(txtIPServerMask, txtIPServer, "Enter the subnet mask of the server IP address", Valid, ValidationRestriction.IPAddress, ulErrors, panError); Valid = AddError(txtIPServerGateway, txtIPServer, "Enter the gateway of the server IP address", Valid, ValidationRestriction.IPAddress, ulErrors, panError); Valid = AddError(txtIPBackup, "Enter a valid bakup IP address", Valid, ValidationRestriction.IPAddress, Validation.Optional, ulErrors, panError); Valid = AddError(txtIPBackupVLAN, txtIPBackup, "Enter the VLAN of the backup IP address", Valid, ValidationRestriction.Numeric, ulErrors, panError); Valid = AddError(txtIPBackupMask, txtIPBackup, "Enter the subnet mask of the backup IP address", Valid, ValidationRestriction.IPAddress, ulErrors, panError); Valid = AddError(txtIPBackupGateway, txtIPBackup, "Enter the gateway of the backup IP address", Valid, ValidationRestriction.IPAddress, ulErrors, panError); Valid = AddError(ddlOS, "Select the operating system", Valid, ulErrors, panError); if (boolOSWindows || boolOSLinux) { Valid = AddError(ddlMDT, "Select the build location", Valid, ulErrors, panError); } if (boolOSWindows) { Valid = AddError(ddlDomainWindows, "Select the domain", Valid, ulErrors, panError); } if (boolOSLinux) { Valid = AddError(ddlDomainLinux, "Select the domain", Valid, ulErrors, panError); } if (boolOSWindows || boolOSLinux || boolOSSolaris) { Valid = AddError(new RadioButton[] { radVirtualYes, radVirtualNo }, "Choose if this is a virtual machine", Valid, ulErrors, panError); } if (boolTypeVirtual) { if (boolOSWindows || boolOSLinux) { Valid = AddError(txtMac, "Enter the MAC address of the server", Valid, ValidationRestriction.MACAddress, Validation.Required, ulErrors, panError); } } if (boolTypePhysical) { Valid = AddError(txtSerial, "Enter the serial number", Valid, ValidationRestriction.Basic, Validation.Required, ulErrors, panError); Valid = AddError(txtMacPrimary, "Enter the primary MAC address of the server", Valid, ValidationRestriction.MACAddress, Validation.Required, ulErrors, panError); if (boolOSSolaris) { Valid = AddError(ddlBuildType, "Select the build type", Valid, ulErrors, panError); Valid = AddError(ddlDomainSolaris, "Select the domain", Valid, ulErrors, panError); Valid = AddError(ddlSource, "Select the source", Valid, ulErrors, panError); Valid = AddError(new RadioButton[] { radBootLocal, radBootSan }, "Select the boot type", Valid, ulErrors, panError); Valid = AddError(new RadioButton[] { radEcomYes, radEcomNo }, "Choose if this is going into the E-commerce environment", Valid, ulErrors, panError); Valid = AddError(ddlBuildNetwork, "Select the build network", Valid, ulErrors, panError); Valid = AddError(ddlCGI, "Select the CGI script location", Valid, ulErrors, panError); Valid = AddError(ddlInterface1, "Select interface # 1", Valid, ulErrors, panError); Valid = AddError(txtMPIP1, "Enter a valid MP IP address # 1", Valid, ValidationRestriction.IPAddress, Validation.Required, ulErrors, panError); Valid = AddError(txtMPIP1VLAN, txtMPIP1, "Enter the VLAN of MP IP address # 1", Valid, ValidationRestriction.Numeric, ulErrors, panError); Valid = AddError(ddlInterface2, "Select interface # 2", Valid, ulErrors, panError); Valid = AddError(txtMPIP2, "Enter a valid MP IP address # 2", Valid, ValidationRestriction.IPAddress, Validation.Required, ulErrors, panError); Valid = AddError(txtMPIP2VLAN, txtMPIP2, "Enter the VLAN of MP IP address # 2", Valid, ValidationRestriction.Numeric, ulErrors, panError); } } if (Valid) { string strName = txtName.Text.Trim(); string strBackup = ddlBackup.SelectedValue; string strSerial = txtSerial.Text.Trim(); string strAsset = txtAsset.Text.Trim(); int intOS = ParseInt(ddlOS.SelectedItem.Value); string strIP = txtIPServer.Text.Trim(); string strIPVlan = txtIPServerVLAN.Text.Trim(); string strIPMask = txtIPServerMask.Text.Trim(); string strIPGateway = txtIPServerGateway.Text.Trim(); string strIPBackup = txtIPBackup.Text.Trim(); string strIPBackupVlan = txtIPBackupVLAN.Text.Trim(); string strIPBackupMask = txtIPBackupMask.Text.Trim(); string strIPBackupGateway = txtIPBackupGateway.Text.Trim(); string strArrayConfig = "PNCBASIC30"; if (radVirtualYes.Checked) { strArrayConfig = "BASIC"; } string strMAC1 = txtMacPrimary.Text; string strMAC2 = txtMacSecondary.Text; if (boolTypeVirtual) { strMAC1 = txtMac.Text; strMAC2 = ""; } string strError = ""; try { bool boolMDT = false; if (boolOSWindows) { strError = oZeus.AddBuild(intID, intID, intID, strSerial, strAsset, strName, strArrayConfig, oOperatingSystem.Get(intOS, "zeus_os"), oOperatingSystem.Get(intOS, "zeus_os_version"), 0, oOperatingSystem.Get(intOS, "zeus_build_type"), ddlDomainWindows.SelectedItem.Value, intEnvironment, "SERVER", 0, strMAC1, strMAC2, strIP, strIPVlan, strIPMask, strIPGateway, strIPBackup, strIPBackupVlan, strIPBackupMask, strIPBackupGateway, "", "", "", "", ddlMDT.SelectedItem.Value, "", 1); if (strError == "") { // Add Applications foreach (ListItem li in chkComponentsWindows.Items) { if (li.Selected) { oZeus.AddApp(strSerial, li.Value, ""); } } boolMDT = true; } } else if (boolOSLinux) { strError = oZeus.AddBuild(intID, intID, intID, strSerial, strAsset, strName, strArrayConfig, oOperatingSystem.Get(intOS, "name"), "", 0, "", ddlDomainLinux.SelectedItem.Value, intEnvironment, "SERVER", 0, strMAC1, strMAC2, strIP, strIPVlan, strIPMask, strIPGateway, strIPBackup, strIPBackupVlan, strIPBackupMask, strIPBackupGateway, "", "", "", "", ddlMDT.SelectedItem.Value, "", 1); if (strError == "") { // Add Applications foreach (ListItem li in chkComponentsLinux.Items) { if (li.Selected) { oZeus.AddApp(strSerial, li.Value, ""); } } boolMDT = true; } } else if (boolOSSolaris) { string strZeusBuildTypeSolaris = ddlBuildType.SelectedItem.Value; string strSolarisDomain = ddlDomainSolaris.SelectedItem.Value; string strSolarisBuildFlags = (radBootLocal.Checked ? "P,T,D" : "P"); if (radEcomYes.Checked) { strSolarisBuildFlags += ",E"; } string strSource = ddlSource.SelectedItem.Value; string strSolarisMAC = oFunction.FormatMAC(strMAC1, ":"); string strJumpstartCGI = ddlCGI.SelectedItem.Value; string strSolarisBuildNetwork = ddlBuildNetwork.SelectedItem.Value; string strJumpstartBuildType = "dhcp"; strError = oZeus.AddBuild(intID, intID, intID, strSerial, strAsset, strName.ToLower(), strArrayConfig, oOperatingSystem.Get(intOS, "zeus_os"), oOperatingSystem.Get(intOS, "zeus_os_version"), 0, strZeusBuildTypeSolaris, strSolarisDomain, intEnvironment, strSource, 0, strSolarisMAC, "", strIP, strIPVlan, strIPMask, strIPGateway, strIPBackup, strIPBackupVlan, strIPBackupMask, strIPBackupGateway, ddlInterface1.SelectedItem.Value, txtMPIP1.Text, ddlInterface2.SelectedItem.Value, txtMPIP2.Text, strSolarisBuildFlags, oVariable.SolarisFlags(strJumpstartCGI, strSolarisBuildNetwork, strJumpstartBuildType, false), 1); if (strError == "") { // Register string strJumpstartURL = "http://" + strJumpstartCGI + "/cgi-bin/jumpstart.cgi?1010,MACADDR=" + strSolarisMAC + ",create_host_info"; oLog.AddEvent(intID, strName, strSerial, "Beginning HOST.INFO registration on jumpstart URL = " + strJumpstartURL, LoggingType.Information); if (RunCGI(strJumpstartURL) == true) { oLog.AddEvent(intID, strName, strSerial, "Success!! HOST.INFO registration on jumpstart URL = " + strJumpstartURL, LoggingType.Information); } else { strError = "CREATE_HOST_INFO registration ~ Jumpstart URL = " + strJumpstartURL + " failed."; oLog.AddEvent(intID, strName, strSerial, "Failure!! HOST.INFO registration on jumpstart URL = " + strJumpstartURL, LoggingType.Error); } strJumpstartURL = "http://" + strJumpstartCGI + "/cgi-bin/jumpstart.cgi?1010,MACADDR=" + strSolarisMAC + ",add_client"; oLog.AddEvent(intID, strName, strSerial, "Beginning Client Configuration on jumpstart URL = " + strJumpstartURL, LoggingType.Information); if (RunCGI(strJumpstartURL) == true) { oLog.AddEvent(intID, strName, strSerial, "Success!! Client Configuration on jumpstart URL = " + strJumpstartURL, LoggingType.Information); } else { strError = "ADD_CLIENT registration ~ Jumpstart URL = " + strJumpstartURL + " failed."; oLog.AddEvent(intID, strName, strSerial, "Failure!! Client Configuration on jumpstart URL = " + strJumpstartURL, LoggingType.Error); } } } else if (boolOSAIX) { strError = "AIX is unavailable at this time."; } else { // Other strError = "The selected operating system is unavailable at this time."; } if (boolMDT) { // Register MDT string strRDPMDTWebService = ddlMDT.SelectedItem.Value; System.Net.NetworkCredential oCredentials = new System.Net.NetworkCredential(oVariable.ADUser(), oVariable.ADPassword(), oVariable.Domain()); BuildSubmit oMDT = new BuildSubmit(); oMDT.Credentials = oCredentials; oMDT.Url = strRDPMDTWebService; string strMDTMAC1 = oFunction.FormatMAC(strMAC1, ":"); oLog.AddEvent(intID, strName, strSerial, "Running ForceCleanup MDT on " + strRDPMDTWebService + " (" + strName + ", " + strMDTMAC1 + ", " + "ServerShare" + ")", LoggingType.Information); oMDT.ForceCleanup(strName, strMDTMAC1, "ServerShare"); string strMDTMAC2 = ""; if (strMAC2 != "") { strMDTMAC2 = oFunction.FormatMAC(strMAC2, ":"); oLog.AddEvent(intID, strName, strSerial, "Waiting 60 seconds for Active Directory to Sychronize...", LoggingType.Debug); Thread.Sleep(60000); // Wait 60 seconds oLog.AddEvent(intID, strName, strSerial, "Running ForceCleanup MDT on " + strRDPMDTWebService + " (" + strName + ", " + strMDTMAC2 + ", " + "ServerShare" + ")", LoggingType.Information); oMDT.ForceCleanup(strName, strMDTMAC2, "ServerShare"); } string[] strExtendedMDT1 = new string[] { "PNCBACKUPSOFTWARE:" + strBackup, "IISInstall:" + (chkIIS.Checked ? "YES" : "NO"), "HWConfig:" + (radBootLocal.Checked ? "DellLD" : "DEFAULT"), "ESMInstall:" + (chkESM.Checked ? "YES" : "NO") + ", ClearViewInstall:YES", "Teamed2:" + strMDTMAC2, "HIDSInstall:" + (chkHIDS.Checked ? "YES" : "NO") }; string strExtendedMDTs1 = ""; foreach (string extendedMDT in strExtendedMDT1) { if (strExtendedMDTs1 != "") { strExtendedMDTs1 += ", "; } strExtendedMDTs1 += extendedMDT; } string strBootEnvironment = oOperatingSystem.Get(intOS, "boot_environment"); string strTaskSequence = oOperatingSystem.Get(intOS, "task_sequence"); string strDomain = ddlDomainWindows.SelectedItem.Value; oLog.AddEvent(intID, strName, strSerial, "Registering MDT on " + strRDPMDTWebService + ", automatedBuild2 (" + strName + ", " + strMDTMAC1 + ", " + strBootEnvironment + ", " + "provision" + ", " + strDomain + ", " + strTaskSequence + ", " + "ServerShare" + ", ExtendedValues=" + strExtendedMDTs1 + ")", LoggingType.Information); oMDT.automatedBuild2(strName, strMDTMAC1, strBootEnvironment, "provision", strDomain, strTaskSequence, "ServerShare", strExtendedMDT1); if (strMDTMAC2 != "") { string[] strExtendedMDT2 = new string[] { "PNCBACKUPSOFTWARE:" + strBackup, "IISInstall:" + (chkIIS.Checked ? "YES" : "NO"), "HWConfig:" + (radBootLocal.Checked ? "DellLD" : "DEFAULT"), "ESMInstall:" + (chkESM.Checked ? "YES" : "NO") + ", ClearViewInstall:YES", "Teamed2:" + strMDTMAC1, "HIDSInstall:" + (chkHIDS.Checked ? "YES" : "NO") }; string strExtendedMDTs2 = ""; foreach (string extendedMDT in strExtendedMDT2) { if (strExtendedMDTs2 != "") { strExtendedMDTs2 += ", "; } strExtendedMDTs2 += extendedMDT; } oLog.AddEvent(intID, strName, strSerial, "Waiting 60 seconds for Active Directory to Sychronize...", LoggingType.Debug); Thread.Sleep(60000); // Wait 60 seconds oLog.AddEvent(intID, strName, strSerial, "Registering MDT on " + strRDPMDTWebService + ", automatedBuild2 (" + strName + ", " + strMDTMAC2 + ", " + strBootEnvironment + ", " + "provision" + ", " + strDomain + ", " + strTaskSequence + ", " + "ServerShare" + ", ExtendedValues=" + strExtendedMDTs2 + ")", LoggingType.Information); oMDT.automatedBuild2(strName, strMDTMAC1, strBootEnvironment, "provision", strDomain, strTaskSequence, "ServerShare", strExtendedMDT2); } oLog.AddEvent(intID, strName, strSerial, "MDT has been configured", LoggingType.Information); } } catch (Exception ex) { strError = ex.Message; } if (strError == "") { panSuccess.Visible = true; litName.Text = txtName.Text.ToUpper(); } else { AddError(strError, ulErrors2, panError2); } } // ArrayConfig // PNCBASIC30 = Windows / Linux Blade, All Solaris // BASIC = VMware // SANCONNECTEDF = Rackmount (not just BFS?) }