/** * 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); }
if ($_POST['selected_lab_id'] != '') { $lab_id = $_POST['selected_lab_id']; $lab_display_name = ace_lab_get_display_name_by_id($lab_id); $success = ace_group_add_lab($group_id, $lab_id); $message = create_message($success, "adding '{$lab_display_name}' to '{$group_name}' group"); } else { $message = create_message(FALSE, "adding a lab, no lab_id specified"); } break; case 'group_lab_remove': $group_id = $_POST['group_id']; $group_name = ace_group_get_name_by_id($group_id); if ($_POST['selected_lab_id'] != '') { $lab_id = $_POST['selected_lab_id']; $lab_display_name = ace_lab_get_display_name_by_id($lab_id); $success = ace_group_remove_lab($group_id, $lab_id); $message = create_message($success, "revoking '{$lab_display_name}' from '{$group_name}' group"); } else { $message = create_message(FALSE, "revoking a lab, no lab_id specified"); } break; } if (isset($message)) { $messages[] = $message; } unset($message); switch ($_POST['display']) { case 'class_create_form': $element = ' <p align="center">Create Class</p> <form name="class_create_form" action="' . _MANAGER_URL_ . '" method="post">
$message = create_message($success, "renaming lab '{$old_lab_display_name}' to '{$new_lab_display_name}'"); } else { $message = create_message(FALSE, 'renaming lab, name did not change'); } } else { $message = create_message(FALSE, 'renaming lab, no lab_id specified'); } break; case 'lab_unpublish': if (isset($lab_id)) { if (ace_lab_is_published($lab_id)) { $lab_group_ids = ace_lab_get_group_ids($lab_id); $group_count = count($lab_group_ids); if ($lab_group_ids !== FALSE) { foreach ($lab_group_ids as $group_id) { ace_group_remove_lab($group_id, $lab_id); } $messages[] = create_message(TRUE, 'un-publishing lab, lab was unpublished from ' . $group_count . ' group(s)'); } else { $messages[] = create_message(FALSE, 'un-publishing lab, lab was marked as published but no published groups were found'); } } else { $messages[] = create_message(FALSE, 'un-publishing lab, lab was not published'); } } else { $messages[] = create_message(FALSE, 'un-publishing lab, no lab_id apecified'); } break; case 'lab_activate': // activate an existing lab if (isset($lab_id)) {