Ejemplo n.º 1
0
function _ips_resolve_all($service_id)
{
    $service = get_service($service_id);
    $ips = get_vm_ips($service_id);
    // resolve base ips after upgrade
    $ips_count = $service['configoption18'] - count($ips['base']);
    for ($i = 0; $i < $ips_count; $i++) {
        if (count($ips['notresolved']) > 0) {
            $notresolvedip = array_shift($ips['notresolved']);
            _action_ip_setbase($service_id, $notresolvedip->_id);
        } else {
            _action_ip_add($service_id, 1);
        }
        $ips = get_vm_ips($service_id);
    }
    // resolve base ips after downgrade
    if (count($ips['base']) > $service['configoption18']) {
        $ips_count = count($ips['base']) - $service['configoption18'];
        $remove = array();
        for ($i = 0; $i < $ips_count; $i++) {
            $ip = array_pop($ips['base']);
            $remove[] = $ip->_id;
        }
        $sql_delete_ips_base = "DELETE FROM tblonappips WHERE\n            serviceid  = '{$service_id}'\n            and ipid in (" . implode(',', $remove) . ")";
        full_query($sql_delete_ips_base);
        $ips = get_vm_ips($service_id);
    }
    // resolve additional ips after upgrade
    $ips_count = $service['additionalips'] - count($ips['additional']);
    for ($i = 0; $i < $ips_count; $i++) {
        if (count($ips['notresolved']) > 0) {
            $notresolvedip = array_shift($ips['notresolved']);
            _action_ip_setadditional($service_id, $notresolvedip->_id);
        } else {
            _action_ip_add($service_id, 0);
        }
        $ips = get_vm_ips($service_id);
    }
    // resolve additional ips after downgrade
    if (count($ips['additional']) > $service['additionalips']) {
        $ips_count = count($ips['additional']) - $service['additionalips'];
        $remove = array();
        for ($i = 0; $i < $ips_count; $i++) {
            $ip = array_pop($ips['additional']);
            $remove[] = $ip->_id;
        }
        $sql_delete_ips_base = "DELETE FROM tblonappips WHERE\n            serviceid  = '{$service_id}'\n            and ipid in (" . implode(',', $remove) . ")";
        full_query($sql_delete_ips_base);
        $ips = get_vm_ips($service_id);
    }
    // remove not resolved IPs
    foreach ($ips['notresolved'] as $ip) {
        _action_ip_delete($service_id, $ip->_id);
    }
    update_service_ips($service_id);
}
Ejemplo n.º 2
0
/**
 * Show virtual machine addresses
 */
function productipaddresses()
{
    global $_ONAPPVARS, $_LANG;
    foreach (array('ipid') as $val) {
        $_ONAPPVARS[$val] = get_value($val);
    }
    $action = $_ONAPPVARS['action'];
    if (!is_null($action) && $action != "") {
        switch ($action) {
            case 'setbase':
                $return = _action_ip_setbase($_ONAPPVARS['id'], $_ONAPPVARS['ipid']);
                break;
            case 'setadditional':
                $return = _action_ip_setadditional($_ONAPPVARS['id'], $_ONAPPVARS['ipid']);
                break;
            case 'assignbase':
                $return = _action_ip_add($_ONAPPVARS['id'], 1);
                break;
            case 'assignadditional':
                $return = _action_ip_add($_ONAPPVARS['id'], 0);
                break;
            case 'resolveall':
                $return = _ips_resolve_all($_ONAPPVARS['id']);
                break;
            case 'delete':
                $return = _action_ip_delete($_ONAPPVARS['id'], $_ONAPPVARS['ipid']);
                break;
            default:
                $_ONAPPVARS['error'] = sprintf($_LANG["onappactionnotfound"], $action);
                break;
        }
    }
    if (isset($return)) {
        if (isset($return['error'])) {
            $_ONAPPVARS['error'] = $return['error'];
        } else {
            redirect(ONAPP_FILE_NAME . "?page=ipaddresses&id=" . $_ONAPPVARS['id']);
        }
    }
    clientareaipaddresses();
}