registerFunction("getEKM"); $xajax->registerFunction("setupServers"); session_start(); $user = $_SESSION['user']; $in_xAjax = false; $xAjax_objResponse; include('IOB_inc.htm'); include('common_admin_inc.htm'); class EKMdata { var $primaryIP; var $primaryPort; // default is 3801 (decimal) var $secondaryIP; var $secondaryPort; // default is 3801 (decimal) var $keyClassName; function EKMdata( $primaryIP, $primaryPort, $secondaryIP, $secondaryPort, $keyClassName ) { $this->primaryIP = $primaryIP; $this->primaryPort = $primaryPort; $this->secondaryIP = $secondaryIP; $this->secondaryPort = $secondaryPort; $this->keyClassName = $keyClassName; } }; function getEKM($aServer) { global $in_xAjax; // global $xAjax_objResponse; $user = $_SESSION['user']; $xAjax_objResponse = new xajaxResponse(); /// $in_xAjax = true; error_log("Calling get_ekm($user);"); $ekm_data = get_ekm( $user, $aServer ); error_log("ekm_data = ". print_r($ekm_data, true) ); $xAjax_objResponse->assign("primIP", "value", $ekm_data->primaryIP ); $xAjax_objResponse->assign("primPort", "value", $ekm_data->primaryPort ); $xAjax_objResponse->assign("secIP", "value", $ekm_data->secondaryIP ); $xAjax_objResponse->assign("secPort", "value", $ekm_data->secondaryPort ); $xAjax_objResponse->assign("serverType", "value", $aServer ); $xAjax_objResponse->assign("keyClassName", "value", $ekm_data->keyClassName ); // Some Debug examples //$xAjax_objResponse->script('alert(xajax.$("testlevel[1]").value);'); //$xAjax_objResponse->script('alert(xajax.viewSource());'); /// $in_xAjax = false; return $xAjax_objResponse; } function setupServers() { global $in_xAjax; // global $xAjax_objResponse; $user = $_SESSION['user']; $xAjax_objResponse = new xajaxResponse(); /// $in_xAjax = true; error_log("akm_setup_servers"); // !?! This needs to be dome when the user slects LME not here. // At the time this code was written I coud not put it on the partition page akm_setup_servers($user); $xAjax_objResponse->script('alert("The servers have been setup!");'); // Some Debug examples //$xAjax_objResponse->script('alert(xajax.$("testlevel[1]").value);'); //$xAjax_objResponse->script('alert(xajax.viewSource());'); /// $in_xAjax = false; return $xAjax_objResponse; } $xajax->processRequest(); /*******************************************************************************************/ /****************************************************************** * We are loding up this data before the post so we can see if a * tape was loaded from the time the screen was loaded to the * time the apply button was pressed. ******************************************************************/ // Load the data up on the get of the page. $perferedServerType = get_ekm_type($user); // !?! For now just travers the drives and see what vendor types there are to set the $perferedServerType. $drives = get_all_drives($user, $sortCriteria); //error_log( "Drives = ". print_r($drives, true) ); $ibm = false; $hp = false; $ibmTapeLoaded = false; $hpTapeLoaded = false; foreach($drives as $drive) { if($drive->driveType == 'LTO-4' || $drive->driveType == 'LTO-5') { error_log("\n\nWe have a ".$drive->vendor." ".$drive->driveType." drive\n\n"); // Set the types of encryption capable drives found in the system // And see if any encryption drive is loaded with a tape if( $drive->vendor == "IBM" && $drive->interfaceType != "SCSI") { $ibm = true; if( $drive->mediaPresent == "1" ) { error_log("We have tape loaded in a IBM drive"); $ibmTapeLoaded = true; } } else if( $drive->vendor == "HP") { $hp = true; if( $drive->mediaPresent == "1" ) { error_log("We have tape loaded in a HP drive"); $hpTapeLoaded = true; } } } } if( $hp && $Brand != "dell" ) $perferedServerType = 2; else $perferedServerType = 1; if( isset($_GET['ShowServer']) ) { error_log("_GET['ShowServer'] = '".$_GET['ShowServer']. "'\n\n\n"); $ekm_data = get_ekm( $user, $_GET['ShowServer'] ); } else if( $perferedServerType != 0 ) { error_log("Getting EKM data for perfered serverType $perferedServerType\n"); $ekm_data = get_ekm( $user, $perferedServerType ); } else { // Show QKM by default $ekm_data = get_ekm( $user, 2 ); } error_log("qkm_data = " . print_r($qkm_data, true) ); $hb_interval = get_ekm_test_interval($user); error_log("get_ekm_test_interval = ". $hb_interval); $t_threshold = get_epd_test_warning_threshold($user); error_log("get_epd_test_warning_threshold = ". $t_threshold); $ekm_ssl = get_ekm_ssl( $user ); $libekmdata = array(); $QkmLme = 0; $QekmLme = 0; $RkmLme = 0; // Need to get all the logical library data as well, to make sure changing this // doesn't create an invalid config. Only do this for DELL //if($Brand == "dell") { $libs = get_logical_libraries($user, $sortCriteria); foreach($libs as $lib) { // Only include paritions that have library-managed encryption enabled $tempencryption = get_partition_enryption( $user, $lib->guid ); if($tempencryption->method == 4) { error_log("\nWe have a parition in LME ". $lib->name); $tempekmdata = get_ekm_by_library( $user, $lib->guid ); $libekmdata[] = array( "pserver"=>$tempekmdata->primaryIP, "sserver"=>$tempekmdata->secondaryIP, "pport"=>$tempekmdata->primaryPort, "sport"=>$tempekmdata->secondaryPort, "name"=>$lib->name ); // Set the flags so we don't let the user edit this kind of parition. if ($tempekmdata->serverType==1) { $QekmLme = 1; error_log("\nSetting Server Type 1 to LME\n\n"); } else if ($tempekmdata->serverType==2) { $QkmLme = 1; error_log("\nSetting Server Type 2 to LME\n\n"); } else if ($tempekmdata->serverType==3) { $RkmLme = 1; error_log("\nSetting Server Type 3 to LME\n\n"); } } } // We need to make sure that any modifications don't create either of these situations: // 1. Partitions that share one server, but aren't paired with the same primary/secondary. // 2. Primary used as a secondary on another partition, or vice-versa. // 3. Same server used with different ports. } // Handle the progress screen if opened and set the NEW data if ($_SERVER[REQUEST_METHOD] == "POST") { $operationInProgress = true; $status = new ReturnStatus(); error_log($_SERVER['REQUEST_URI']." POST = ". print_r($_POST, true) ); if( ($_POST["serverType"] == 1 && $ibmTapeLoaded) || ($_POST["serverType"] == 2 && $hpTapeLoaded ) ) { error_back(0x50021); } if( $_POST['DoIPs'] == 1 ) { $thePrimIP = $_POST['primIP']; $thePrimPort = (int)0; $theSecIP = $_POST['secIP']; $theSecPort = (int)0; // Set the primary port if (isset($_POST['primPort'])) { $thePrimPort=(int)$_POST['primPort']; } else if ($_POST["serverType"] == 2) { $thePrimPort = (int)6000; } else if ($_POST["serverType"] == 3) { $thePrimPort = (int)443; } // Set the secondary port if (isset($_POST['secPort'])) { $theSecPort=(int)$_POST['secPort']; } else if ($_POST["serverType"] == 2) { $theSecPort = (int)6000; } // no else, leave the second port zero for RKM, et al. $theKeyClassName = $_POST['keyClassName']; $ekm_data = new EKMdata($thePrimIP, $thePrimPort, $theSecIP, $theSecPort, $theKeyClassName); error_log("\n\n\nThe data being set is: ". print_r($ekm_data, true). "| ServerType = ". $_POST["serverType"]. "\n\n\n" ); set_ekm( $user, $ekm_data, $_POST["serverType"]); } if( $_POST['DoInterval'] == 1 ) { $interval = (isset($_POST['qkmHbInterval'])?$_POST['qkmHbInterval']:0); error_log("Setting set_ekm_test_interval to ". $interval); /*################################################################################# # Note: Quantum uses minutes for this interval and IBM and DELL use hours. But # the function only takes minutes. So we need to convert when DELL. # Note we are doing by setting the combobox value to minutes for both. #################################################################################*/ set_ekm_test_interval($user, $interval); if(isset($_POST['threshold']) ) { error_log("Setting set_epd_test_warning_threshold to ". $_POST['threshold']); set_epd_test_warning_threshold($user, $_POST['threshold']); } } if( $_POST['DoSSL'] == 1 && $_POST["serverType"] == 1 ) { $isSSLEnabled = isset($_POST['EKMSSL']) ? true: false; error_log("Setting SSL EKM to " . ($isSSLEnabled ? "TRUE" : "FALSE" )); set_ekm_ssl( $user, $isSSLEnabled ); } print $status->out(); return; } ?>
$xajax->printJavascript(); ?>