示例#1
0
/**
 * start a vm
 *
 * @api
 *
 * @param   int $vm_id vm id
 *
 * @return  bool                on success TRUE/FALSE
 */
function ace_vm_activate($vm_id)
{
    $lab_id = ace_db_vm_get_lab_id($vm_id);
    $lab_active = ace_db_lab_get_state($lab_id);
    if ($lab_active) {
        $network_ids_to_toggle = array();
        $vm_nics = ace_vm_get_nic_table($vm_id);
        if (is_array($vm_nics)) {
            foreach ($vm_nics as $vm_nic) {
                if (!ace_network_is_active($vm_nic['network_id'])) {
                    $network_ids_to_toggle[] = $vm_nic['network_id'];
                }
            }
        }
        if (is_array($network_ids_to_toggle)) {
            # start all associated inactive networks
            foreach ($network_ids_to_toggle as $network_id) {
                ace_network_activate($network_id);
            }
        }
        # start the vm
        if (ace_virt_vm_activate($vm_id)) {
            $db_success = ace_db_vm_activate($vm_id);
            $return = $db_success;
        } else {
            $return = FALSE;
        }
        if (is_array($network_ids_to_toggle)) {
            # stop all associated inactive networks
            foreach ($network_ids_to_toggle as $network_id) {
                ace_network_deactivate($network_id);
            }
        }
    } else {
        $db_success = ace_db_vm_activate($vm_id);
        $return = $db_success;
    }
    return $return;
}
示例#2
0
         }
     } else {
         $message = create_message(FALSE, "creating network, no lab_id specified");
     }
     break;
 case 'network_change_state':
     if (isset($_POST['network_id'])) {
         $network = ace_network_get_info($_POST['network_id']);
         $network_display_name = $network['display_name'];
         if ($network['instance'] != 0) {
             // make sure we're not modifying the tenant-public network
             if (ace_network_is_active($_POST['network_id'])) {
                 $success = ace_network_deactivate($_POST['network_id']);
                 $message = create_message($success, "deactivating {$network_display_name}");
             } else {
                 $success = ace_network_activate($_POST['network_id']);
                 $message = create_message($success, "activating {$network_display_name}");
             }
         } else {
             $message = create_message(FALSE, "deactivating {$network_display_name}, not allowed");
         }
     } else {
         $message = create_message(FALSE, "activating network, no network_id specified");
     }
     break;
 case 'network_rename':
     if (isset($_POST['network_id'])) {
         if ($_POST['network_new_name'] == '..new name..' || $_POST['network_new_name'] == '') {
             $message = create_message(FALSE, "renaming network, new name not specified");
         } else {
             $network = ace_network_get_info($_POST['network_id']);