コード例 #1
0
ファイル: fns_mysql.php プロジェクト: BCTAACCCT/ACEITLab
/**
 * fetch next available (within quota) vm instance number for a given lab id
 *
 * @param   int $lab_id lab id
 *
 * @return  int|bool                vm instance number | FALSE on error
 */
function ace_db_lab_get_available_vm_instance($lab_id)
{
    $quota_array = ace_db_lab_get_quota_array($lab_id);
    $vm_quota = $quota_array['vms'];
    $instance_list = array();
    $table = ace_db_lab_get_vm_table($lab_id);
    if (is_array($table)) {
        for ($row = 0; $row < count($table); $row++) {
            $instance_list[$row] = $table[$row]['instance'];
        }
        $valid_instances = range(0, $vm_quota);
        $available_instances = array_diff($valid_instances, $instance_list);
        if (count($available_instances) > 0) {
            $available_instance = reset($available_instances);
            $return = $available_instance;
        } else {
            $return = FALSE;
        }
    } else {
        $return = 0;
    }
    return $return;
}
コード例 #2
0
ファイル: fns.php プロジェクト: BCTAACCCT/ACEITLab
/**
 * returns quota array for a lab
 *
 * @api
 *
 * @param   int $lab_id lab id
 *
 * @return  array|bool              array of quotas | FALSE on error
 */
function ace_lab_get_quota_array($lab_id)
{
    return ace_db_lab_get_quota_array($lab_id);
}