$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'];
Exemple #4
0
  *   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
 }
Exemple #6
0
<?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 . "%'");
            }
        }
    }