Beispiel #1
0
        }
        break;
    case 'lab_delete':
        $lab_id = $_POST['lab_id'];
        $lab_user_id = ace_lab_get_user_id($lab_id);
        $lab_owner_name = ace_user_get_name_by_id($lab_user_id);
        $lab_display_name = ace_lab_get_display_name_by_id($lab_id);
        $success = ace_lab_delete($lab_id);
        $messages[] = create_message($success, 'deleting lab (' . $lab_owner_name . ' - ' . $lab_display_name . ')');
        break;
    case 'labs_purge_aged':
        $aged_active_lab_table = ace_get_aged_active_labs();
        if (is_array($aged_active_lab_table)) {
            $aged_active_lab_count = count($aged_active_lab_table);
            foreach ($aged_active_lab_table as $lab) {
                $success = ace_lab_deactivate($lab['id']);
                $messages[] = create_message($success, 'deactivating aged lab');
            }
            $messages[] = create_message(TRUE, $aged_active_lab_count . ' lab(s) deactivated');
        } else {
            $messages[] = create_message(FALSE, 'No aged labs were found');
        }
        break;
}
switch ($_POST['display']) {
    case 'hosts':
        $host_table = ace_get_hosts();
        $html = '
			<div class="element_table">
                <div class="element_column">
                    <div class="element">
Beispiel #2
0
/**
 * deletes a lab
 *
 * @api
 *
 * @param   int $lab_id lab id
 *
 * @return  bool                    on success TRUE/FALSE
 */
function ace_lab_delete($lab_id)
{
    if (ace_lab_is_active($lab_id)) {
        ace_lab_deactivate($lab_id);
    }
    $lab_group_ids = ace_lab_get_group_ids($lab_id);
    if (is_array($lab_group_ids)) {
        foreach ($lab_group_ids as $group_id) {
            ace_group_remove_lab($group_id, $lab_id);
        }
    }
    $vm_table = ace_db_lab_get_vm_table($lab_id);
    foreach ($vm_table as $vm) {
        $cdrom_table = ace_db_vm_get_cdrom_table($vm['id']);
        foreach ($cdrom_table as $cdrom) {
            ace_db_vm_detach_cdrom($cdrom['vm_id'], $cdrom['instance']);
        }
        $disk_table = ace_db_vm_get_disk_table($vm['id']);
        foreach ($disk_table as $disk) {
            ace_db_vm_detach_disk($disk['vm_id'], $disk['instance']);
        }
        $nic_table = ace_db_vm_get_nic_table($vm['id']);
        foreach ($nic_table as $nic) {
            ace_db_vm_detach_nic($nic['vm_id'], $nic['instance']);
        }
        ace_db_vm_delete($vm['id']);
    }
    $volume_table = ace_db_lab_get_volume_table($lab_id);
    foreach ($volume_table as $volume) {
        ace_db_volume_delete($volume['id']);
    }
    $network_table = ace_db_lab_get_network_table($lab_id);
    foreach ($network_table as $network) {
        ace_db_network_delete($network['id']);
    }
    return ace_db_lab_delete($lab_id);
}
Beispiel #3
0
     break;
 case 'lab_activate':
     // activate an existing lab
     if (isset($lab_id)) {
         $lab_display_name = ace_lab_get_display_name_by_id($lab_id);
         $success = ace_lab_activate($lab_id);
         $message = create_message($success, "activating {$lab_display_name}");
     } else {
         $message = create_message(FALSE, "activating lab, no lab_id_specified");
     }
     break;
 case 'lab_deactivate':
     // deactivate an existing lab
     if (isset($lab_id)) {
         $lab_display_name = ace_lab_get_display_name_by_id($lab_id);
         $success = ace_lab_deactivate($lab_id);
         $message = create_message($success, "deactivating {$lab_display_name}");
     } else {
         $message = create_message(FALSE, "deactivating lab, no lab_id specified");
     }
     break;
 case 'lab_create_volume':
     if (isset($lab_id, $_POST['size'], $_POST['unit'])) {
         $quota_array = ace_lab_get_quota_array($lab_id);
         $total_lab_volumes_reservations_quota = $quota_array['storage'];
         $total_lab_volumes_reservations_GiB = ace_lab_get_volumes_reservation_size($lab_id);
         $available_storage_reservation_GiB = $total_lab_volumes_reservations_quota - $total_lab_volumes_reservations_GiB;
         $requested_reservation_GiB = $_POST['unit'] == 'M' ? round($_POST['size'] / 1024, 2) : $_POST['size'];
         if ($requested_reservation_GiB <= $available_storage_reservation_GiB) {
             $volume_id = ace_volume_create($lab_id, $_POST['size'], $_POST['unit'], NULL);
             $success = $volume_id !== FALSE ? TRUE : FALSE;