/** * activates a lab (deploys to a host) * * @api * * @param int $lab_id lab id * * @return bool on success TRUE/FALSE */ function ace_lab_activate($lab_id) { # only if user has no active labs (i.e. must deactivate other labs first) $user_id = ace_lab_get_user_id($lab_id); $user_lab_table = ace_user_get_lab_table($user_id); $another_user_lab_is_active = FALSE; foreach ($user_lab_table as $lab) { if ($lab['state'] == 1) { $another_user_lab_is_active = TRUE; } } if (!$another_user_lab_is_active) { # determine best host, and update lab record $host_id = ace_db_get_best_host(); if (is_numeric($host_id)) { # set lab as activated in db $db_success = ace_db_lab_set_state($lab_id, TRUE); # this lab was inactive, and was successfully activated $activated = $db_success; # update lab record with host_id ace_db_lab_set_host_id($lab_id, $host_id); # construct lab on host $net_table = ace_db_lab_get_network_table($lab_id); foreach ($net_table as $net) { # create (define) each network ace_virt_network_create($net['id']); # start each network if marked active in db if ($net['state'] == 1) { ace_virt_network_activate($net['id']); } } $vol_table = ace_db_lab_get_volume_table($lab_id); foreach ($vol_table as $vol) { # create each volume ace_virt_volume_create($vol['id']); } $vm_table = ace_db_lab_get_vm_table($lab_id); foreach ($vm_table as $vm) { # create (define) each vm ace_virt_vm_create($vm['id']); $vm_cdrom_table = ace_db_vm_get_cdrom_table($vm['id']); foreach ($vm_cdrom_table as $vm_cdrom) { ace_virt_vm_attach_cdrom($vm['id'], $vm_cdrom['instance']); if ($vm_cdrom['volume_id'] != NULL) { ace_virt_vm_cdrom_insert_media($vm['id'], $vm_cdrom['instance'], $vm_cdrom['volume_id']); } } $vm_disk_table = ace_db_vm_get_disk_table($vm['id']); foreach ($vm_disk_table as $vm_disk) { ace_virt_vm_attach_disk($vm['id'], $vm_disk['instance'], $vm_disk['volume_id']); } $vm_nic_table = ace_db_vm_get_nic_table($vm['id']); foreach ($vm_nic_table as $vm_nic) { $vm_nic_mac_address = ace_gen_convert_int2mac($vm_nic['mac_index']); ace_virt_vm_attach_nic($vm['id'], $vm_nic['instance'], $vm_nic_mac_address); ace_virt_vm_nic_connect_network($vm['id'], $vm_nic['instance'], $vm_nic['network_id']); } # set each vm state if ($vm['state'] == 1) { ace_vm_activate($vm['id']); } } } else { $activated = FALSE; } } else { $activated = FALSE; } return $activated; }
case 'quota_update_form': $quota_id = $_POST['quota_id']; $quota = ace_quota_get_info($quota_id); $object_display_name = ''; switch ($quota['object_type']) { case 'host': $object_display_name = 'Host (' . ace_host_get_name_by_id($quota['object_id']) . ')'; break; case 'user': $object_display_name = 'User (' . ace_user_get_name_by_id($quota['object_id']) . ')'; break; case 'group': $object_display_name = 'Group (' . ace_group_get_name_by_id($quota['object_id']) . ')'; break; case 'lab': $object_display_name = 'Lab (' . ace_user_get_name_by_id(ace_lab_get_user_id($quota['object_id'])) . ':' . ace_lab_get_display_name_by_id($quota['object_id']) . ')'; break; } $element = ' <p align="center"><strong>Edit Quota</strong></p>'; $element_column[] = $element; $element = '<div></div> <form name="admin_quota_update_form" action="' . _ADMIN_URL_ . '" method="post"> <input name="display" value="quotas" type="hidden" /> <input name="quota_id" value="' . $quota_id . '" type="hidden" /> <input name="object_type" value="' . $quota['object_type'] . '" type="hidden" /> <input name="object_id" value="' . $quota['object_id'] . '" type="hidden" /> <table> <tr> <td align="right">Object:</td> <td>' . $object_display_name . '</td>