$sql_update_exec_img = sql_update('lab_vpd_uid',$sql_update_values_img,$lab_vpd_uid); } } // if($job_action['lab_job_uid_status']=='2') } // foreach // Log Entry // // If Job vPod # is Specified if($lab_vpd_grp!='0') { // SELECT vPod Values $sql_first_lab_vpd_grp = sql_first($model_lab_vpd_grp,array('lab_vpd_grp'=>$lab_vpd_grp)); // Define Variables from Query $sql_lab_vpd_grp_status = $sql_first_lab_vpd_grp['lab_vpd_grp_status']; $sql_trx_rsv_grp = $sql_first_lab_vpd_grp['trx_rsv_grp']; ///// /** * * Option 1: Pod Cleanup Complete * If job group was to clean up a pod that no longer had a reservation, * set pod status to '1' so it's available for the next user. * */
$sql_update_index = $sql_trx_rsv_grp; $sql_update_values = array( $sql_update_table.'_status' => '4' ); $sql_update_exec = sql_update($sql_update_table,$sql_update_values,$sql_update_index); sdk_log('info','SQL UPDATE','[labstack-agent:/app/controllers/scrub.php] Reservation #'.$sql_update_index.' has expired. Status updated to Closed (4).',$sql_update_table,$sql_update_index); /** * * Update Pod Status to Pending * */ // Select Pod with Reservation $sql_first_lab_vpd_grp = sql_first($model_lab_vpd_grp,array('lab_vpd_grp.trx_rsv_grp'=>$sql_trx_rsv_grp)); // Define Variables for Database Row $sql_lab_vpd_grp = $sql_first_lab_vpd_grp['lab_vpd_grp']; $sql_lab_vnd_uid = $sql_first_lab_vpd_grp['lab_vnd_uid']; $sql_update_table = 'lab_vpd_grp'; $sql_update_index = $sql_lab_vpd_grp; $sql_update_values = array( 'trx_rsv_grp' => '0', $sql_update_table.'_status' => '2' ); $sql_update_exec = sql_update($sql_update_table,$sql_update_values,$sql_update_index); sdk_log('info','SQL UPDATE','[labstack-agent:/app/controllers/scrub.php] Pod #'.$sql_update_index.' is no longer associated with Reservation #'.$sql_trx_rsv_grp.'. Reservation number updated to NULL (0).',$sql_update_table,$sql_update_index); // sdk_log('info','SQL UPDATE','[labstack-agent:/app/controllers/scrub.php] Pod #'.$sql_update_index.' is scheduled to be reverted. Status updated to Pending (2).',$sql_update_table,$sql_update_index);
$sdk_ses_usr = $_SESSION['sdk_ses_usr']; // decode session variable $ses_sdk_act_ses = sdk_ses_decode($sdk_ses_usr); // select user session from database $ses_sdk_act_ses_first = sql_first($model_sdk_act_ses,array("sdk_act_ses"=>$ses_sdk_act_ses)); // define variables from database values $ses_sdk_act_usr = $ses_sdk_act_ses_first['sdk_act_usr']; $ses_sdk_act_ses_created_at = $ses_sdk_act_ses_first['sdk_act_ses_created_at']; $ses_sdk_act_ses_updated_at = $ses_sdk_act_ses_first['sdk_act_ses_updated_at']; $ses_sdk_act_ses_status = $ses_sdk_act_ses_first['sdk_act_ses_status']; // select user account from database $ses_sdk_act_usr_first = sql_first($model_sdk_act_usr,array("sdk_act_usr"=>$ses_sdk_act_usr)); // define variables from database values $ses_sdk_act_uid = $ses_sdk_act_usr_first['sdk_act_uid']; $ses_sdk_act_uid_name = $ses_sdk_act_usr_first['sdk_act_uid_name']; $ses_sdk_act_grp = $ses_sdk_act_usr_first['sdk_act_grp']; $ses_sdk_act_grp_name = $ses_sdk_act_usr_first['sdk_act_grp_name']; $ses_sdk_act_lvl = $ses_sdk_act_usr_first['sdk_act_lvl']; $ses_sdk_act_lvl_name = $ses_sdk_act_usr_first['sdk_act_lvl_name']; $ses_sdk_act_usr_login = $ses_sdk_act_usr_first['sdk_act_usr_login']; $ses_sdk_act_usr_email = $ses_sdk_act_usr_first['sdk_act_usr_email']; $ses_sdk_act_usr_fullname = $ses_sdk_act_usr_first['sdk_act_usr_fullname']; $ses_sdk_act_usr_created_at = $ses_sdk_act_usr_first['sdk_act_usr_created_at']; $ses_sdk_act_usr_updated_at = $ses_sdk_act_usr_first['sdk_act_usr_updated_at']; $ses_sdk_act_usr_status = $ses_sdk_act_usr_first['sdk_act_usr_status'];
* Perform SQL lookup to determine if account exists * in the database already. The email address is the * unique value used for lookup reference. * */ // SELECT Count of Users with Same Email Address $frm_unique_count = sql_count($model_sdk_act_usr, array("sdk_act_usr_login" => $frm_sdk_act_usr_login)); // failure: if account is not found, or multiple accounts found if ($frm_unique_count != '1') { // sdk_log(); header('Location: login.php?t=reset&msg=3'); } // success: if account is found if ($frm_unique_count == '1') { // select user account from database $frm_sdk_act_usr_select = sql_first($model_sdk_act_usr, array("sdk_act_usr_login" => $frm_sdk_act_usr_login)); // define variables for database values $frm_sdk_act_uid = $frm_sdk_act_usr_select['sdk_act_uid']; $frm_sdk_act_grp = $frm_sdk_act_usr_select['sdk_act_grp']; $frm_sdk_act_usr = $frm_sdk_act_usr_select['sdk_act_usr']; $frm_sdk_act_usr_fullname = $frm_sdk_act_usr_select['sdk_act_usr_fullname']; $frm_sdk_act_usr_email = $frm_sdk_act_usr_select['sdk_act_usr_email']; // generate a temporary password $frm_sdk_act_usr_passwd_raw = sdk_passgen(); $frm_sdk_act_usr_passwd_hash = sdk_passhash($frm_sdk_act_usr_passwd_raw); /** * * Update Database with Temporary Password * */ $sql_update_key = $frm_sdk_act_usr;
/** * * setInstance * * Define the pod instance ID that will be used * to get paramaters (meta data) for that instance. * * The loop through the image NICs is purely for code * efficiency to avoid repeating the code 10x for each * of the NIC interfaces. * * @param integer $lab_vpd_uid The database UID value for * the pod instance (lab_vpd_uid) * * Usage: * $setInstance(12345678); * */ private function setInstance($lab_vpd_uid) { global $model_lab_vpd_uid; global $model_lab_vpd_grp; global $sdk_sql_con; // Set Class Variable Value based on Input $lab_vpd_uid = $lab_vpd_uid; // SQL Query to Select Database Values for Specified Instance $lab_vpd_uid_first = sql_first($model_lab_vpd_uid, array('lab_vpd_uid' => $lab_vpd_uid)); // Set Class Variables based on Database Value $this->lab_vpd_uid = $lab_vpd_uid_first['lab_vpd_uid']; $this->lab_vpd_grp = $lab_vpd_uid_first['lab_vpd_grp']; $this->trx_rsv_grp = $lab_vpd_uid_first['trx_rsv_grp']; $this->lab_vpd_grp_slot = $lab_vpd_uid_first['lab_vpd_grp_slot']; $this->lab_vrk_grp_ref = $lab_vpd_uid_first['lab_vrk_grp_ref']; $this->lab_vrk_uid_octet = $lab_vpd_uid_first['lab_vrk_uid_octet']; $this->lab_vnd_uid_uspace = $lab_vpd_uid_first['lab_vnd_uid_uspace']; $this->lab_vnd_uid_uspace_lead = $lab_vpd_uid_first['lab_vnd_uid_uspace_lead']; $this->lab_vnd_uid_esx_addr = $lab_vpd_uid_first['lab_vnd_uid_esx_addr']; $this->lab_vnd_uid_esx_user = $lab_vpd_uid_first['lab_vnd_uid_esx_user']; $this->lab_vnd_uid_esx_pass = $lab_vpd_uid_first['lab_vnd_uid_esx_pass']; $this->lab_vpd_grp_rdp_addr = $lab_vpd_uid_first['lab_vpd_grp_rdp_addr']; $this->lab_vpd_grp_rdp_port = $lab_vpd_uid_first['lab_vpd_grp_rdp_port']; $this->lab_vpd_grp_rdp_user = $lab_vpd_uid_first['lab_vpd_grp_rdp_user']; $this->lab_vpd_grp_rdp_pass = $lab_vpd_uid_first['lab_vpd_grp_rdp_pass']; $this->lab_img_grp = $lab_vpd_uid_first['lab_img_grp']; $this->lab_img_uid = $lab_vpd_uid_first['lab_img_uid']; $this->lab_img_grp_ref = $lab_vpd_uid_first['lab_img_grp_ref']; // Calculate Datastore name based on standard conventions $lab_vol_uid_ref = 'n' . $this->lab_vrk_uid_octet . $this->lab_vnd_uid_uspace_lead . '-vm'; // Loop through Image NICs for ($nic = '1'; $nic <= '10'; $nic++) { // Define Database Column Name $mac_field = 'lab_img_grp_nic' . $nic . '_mac'; $vlan_field = 'lab_img_grp_nic' . $nic . '_vlan'; // Get Value of Database Column $this->{$mac_field} = $lab_vpd_uid_first[$mac_field]; $this->{$vlan_field} = $lab_vpd_uid_first[$vlan_field]; // If VLAN address is empty if ($this->{$mac_field} == '') { $this->{$mac_field} = '00:00:00:00:00:00'; } // If vlan Address is zero'd, not in use if ($this->{$mac_field} != '00:00:00:00:00:00') { // Placeholder } // If vlan Address is nine'd, use dynamic vlan address if ($this->{$mac_field} == '99:99:99:99:99:99') { // Parse last 3 digits of image ref # $lab_img_grp_ref_last3 = substr($this->lab_img_grp_ref, -3); // Create dynamic vlan address string $dynamic_mac_raw = '02' . $this->lab_vrk_uid_octet . $this->lab_vnd_uid_uspace_lead . $this->lab_vpd_grp_slot . $lab_img_grp_ref_last3 . $nic; // Add colon separators for IPv4 address $this->{$mac_field} = join(':', str_split($dynamic_mac_raw, 2)); } } // End of for($nic) loop }
<?php if (!defined('WP_DEBUG') || !WP_DEBUG) { return; } // SQL $database = array("type" => "mysql", "host" => DB_HOST, "database" => DB_NAME, "user" => DB_USER, "pass" => DB_PASSWORD); $pdo = new SimplePDO($database); $tables = sql_all('SHOW TABLES', "tables_in_" . strtolower($database['database'])); foreach ($tables as $i => $table) { $columns = sql_all('SHOW COLUMNS FROM `' . $table . '`', "field"); foreach ($columns as $column) { foreach ($changes as $source => $dest) { // Voir si la colonne contient la chaine recherch�e if (sql_first("SELECT * FROM `" . $table . "` WHERE `" . $column . "` LIKE '%" . $source . "%'")) { // Faire la modification complexe pour les lignes JSON $json = sql_all("SELECT * FROM `" . $table . "` WHERE `" . $column . "` LIKE 'a:%'"); foreach ($json as $line) { $source_j = $line->{$column}; $j = unserialize($line->{$column}); if ($j) { $j = recursive_array_replace($source, $dest, $j); $j = serialize($j); sql_pexecute("UPDATE `" . $table . "` SET `" . $column . "`=? WHERE `" . $column . "`=?", array($j, $source_j)); } } // Faire ensuite la modification pour les autres lignes. sql_execute("UPDATE `" . $table . "` SET `" . $column . "` = replace(`" . $column . "`, '" . $source . "', '" . $dest . "') WHERE `" . $column . "` NOT LIKE 'a:%' AND `" . $column . "` LIKE '%" . $source . "%'"); } } }