Esempio n. 1
0
/**
 * 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;
}
Esempio n. 2
0
    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>