コード例 #1
0
ファイル: packagelib.php プロジェクト: lonelywoolf/hypervm
 static function initThisList($parent, $class)
 {
     global $gbl, $sgbl, $login, $ghtml;
     $driverapp = $gbl->getSyncClass($parent->__masterserver, $parent->__readserver, 'package');
     $list = rl_exec_get($parent->__masterserver, $parent->__readserver, array("package__{$driverapp}", "getPackages"), null);
     return $list;
 }
コード例 #2
0
ファイル: ftpclientlib.php プロジェクト: lonelywoolf/hypervm
 static function initThisList($parent, $class)
 {
     $fpathp = $parent->fullpath;
     if (!$parent->is_dir()) {
         return null;
     }
     $duflag = $parent->duflag;
     $list = rl_exec_get($parent->__masterserver, $parent->__readserver, array("coreFfile", "get_full_stat"), array($parent->__username_o, $fpathp, $duflag));
     foreach ((array) $list as $stat) {
         $file = basename($stat['name']);
         if ($file === "") {
             continue;
         }
         if ($file === ".") {
             continue;
         }
         $fpath = $fpathp . "/" . $file;
         $file = $parent->nname . "/" . $file;
         if (!isset($parent->ffile_l)) {
             $parent->ffile_l = null;
         }
         $parent->ffile_l[$file] = new Ffile($parent->__masterserver, $parent->__readserver, $parent->root, $file, $parent->__username_o);
         $parent->ffile_l[$file]->setFromArray($stat);
         $parent->ffile_l[$file]->__parent_o = $parent->getParentO();
         $parent->ffile_l[$file]->setFileType();
     }
     $__tv = null;
     return $__tv;
 }
コード例 #3
0
ファイル: aspnetlib.php プロジェクト: lonelywoolf/hypervm
 function updateform($subaction, $param)
 {
     /*
     	$sq = new Sqlite($this->__masterserver, 'aspnet');
     	$rs = $sq->getRowsWhere("parent_clname = 'pserver_s_vv_p_{$this->syncserver}'");
     	foreach($rs as $r) {
     		$res[] = $r['version'];
     	}*/
     $domain = $this->getParentO();
     $resout = rl_exec_get(null, $domain->syncserver, array('aspnet', 'getAspnetVersion'), null);
     $res = explode("*", $resout);
     //$res = array("1.1","1.4");
     //$res = array($res);
     foreach ($res as $r) {
         $r = trim($r);
         if (!$r) {
             continue;
         }
         if (strtolower($r) === 'machineaccounts') {
             continue;
         }
         $rr[] = $r;
     }
     $vlist['version'] = array('s', $rr);
     //$vlist['encoding'] = null;
     return $vlist;
 }
コード例 #4
0
ファイル: lxguardlib.php プロジェクト: lonelywoolf/hypervm
 static function save_current_hitlist($server)
 {
     $list = lxguardhitdisplay::createHitList($server);
     foreach ($list as $r) {
         $hl[$r['ipaddress']] = $r['failcount'];
     }
     rl_exec_get(null, $server, "lxguard_save_hitlist", array($hl));
 }
コード例 #5
0
 function getExtraP($class, $list)
 {
     $res = rl_exec_get(null, $this->nname, array("dirlocation__linux", "getSizeForAll"), array(get_namelist_from_objectlist($list)));
     foreach ($res as $k => $v) {
         $list[$k]->diskfree = $v;
     }
     return $list;
 }
コード例 #6
0
ファイル: lxupdatelib.php プロジェクト: lonelywoolf/hypervm
 function updateLxupdateInfo()
 {
     if_demo_throw_exception();
     if (isUpdating()) {
         throw new lxException("program_is_already_updating");
     } else {
         rl_exec_get($this->__masterserver, 'localhost', array('lxupdate', 'execUpdate'), null);
         throw new lxException("update_scheduled");
     }
 }
コード例 #7
0
ファイル: clientlib.php プロジェクト: lonelywoolf/hypervm
 function updateMultiVpsCreate($param)
 {
     global $gbl, $sgbl, $login, $ghtml;
     if (!check_password($param['vps_admin_password_f'], $this->password)) {
         throw new lxException("wrong_password", 'vps_admin_password_f');
     }
     $res = rl_exec_get(null, 'localhost', 'createMultipLeVps', array($param));
     $url = $ghtml->getFullUrl('a=list&c=vps');
     $gbl->__this_redirect = $url . "&frm_smessage=vps_creation_in_background";
     return $param;
 }
コード例 #8
0
ファイル: diskusagelib.php プロジェクト: soar-team/kloxo
 static function initThisList($parent, $class)
 {
     global $gbl, $sgbl, $login, $ghtml;
     $vpsid = null;
     if ($parent->is__table('vps')) {
         $vpsid = $parent->vpsid;
     }
     $driverapp = $gbl->getSyncClass($parent->__masterserver, $parent->syncserver, 'diskusage');
     $result = rl_exec_get($parent->__masterserver, $parent->syncserver, array("diskusage__{$driverapp}", "getDiskUsage"), null);
     return $result;
 }
コード例 #9
0
ファイル: vpstemplatelib.php プロジェクト: digideskio/hypervm
 static function continueFormFinish($parent, $class, $param, $continueaction)
 {
     global $gbl, $sgbl, $login, $ghtml;
     $driverapp = $gbl->getSyncClass('localhost', $param['listpriv_s_vpspserver_sing'], 'vps');
     $ostlist = rl_exec_get(null, $param['listpriv_s_vpspserver_sing'], array("vps__{$driverapp}", "getOsTemplatelist"));
     $ostlist = lx_merge_good(array('--defer-osimage--' => '--defer-osimage--'), $ostlist);
     $vlist['ostemplate'] = array('A', $ostlist);
     $ret['variable'] = $vlist;
     $ret['action'] = 'add';
     $ret['param'] = $param;
     return $ret;
 }
コード例 #10
0
ファイル: uuserlib.php プロジェクト: lonelywoolf/hypervm
 function updateform($subaction, $param)
 {
     global $gbl, $sgbl, $login, $ghtml;
     switch ($subaction) {
         case "shell_access":
             $driverapp = $gbl->getSyncClass($this->__masterserver, $this->syncserver, 'uuser');
             $res = rl_exec_get($this->__masterserver, $this->syncserver, array("uuser__{$driverapp}", "getShellList"), null);
             $vlist['nname'] = array('M', null);
             $vlist['shell'] = array('s', $res);
             return $vlist;
     }
     return parent::updateform($subaction, $param);
 }
コード例 #11
0
ファイル: updatelib.php プロジェクト: lonelywoolf/hypervm
function update_all_slave()
{
    $db = new Sqlite(null, "pserver");
    $list = $db->getTable(array("nname"));
    foreach ($list as $l) {
        if ($l['nname'] === 'localhost') {
            continue;
        }
        try {
            print "Upgrading Slave {$l['nname']}...\n";
            rl_exec_get(null, $l['nname'], 'remotetestfunc', null);
        } catch (exception $e) {
            print $e->getMessage();
            print "\n";
        }
    }
}
コード例 #12
0
 static function initThisList($parent, $class)
 {
     $slave = $parent->nname;
     if ($parent->is__table('client')) {
         $slave = $parent->websyncserver;
     }
     if ($parent->is__table('vps')) {
         $slave = $parent->syncserver;
     }
     $res = rl_exec_get(null, $slave, array('sshauthorizedkey__sync', 'getAuthorizedKey'), array($parent->username));
     foreach ($res as &$r) {
         $r['nname'] = "{$slave}___{$r['nname']}";
         $r['syncserver'] = $slave;
         $r['parent_clname'] = $parent->getClName();
     }
     return $res;
 }
コード例 #13
0
ファイル: traceroute.php プロジェクト: lonelywoolf/hypervm
 static function initThisList($parent, $class)
 {
     global $gbl, $sgbl, $login, $ghtml;
     $_sysname = "linux";
     $host = $_SERVER['REMOTE_ADDR'];
     if (!$host || $sgbl->isDebug()) {
         $host = "google.com";
     }
     if ($parent->isClass('client')) {
         $server = $parent->websyncserver;
     } else {
         $server = $parent->syncserver;
     }
     $cmd = "traceroute -q 1 -n {$host} ";
     $_result = rl_exec_get(null, "localhost", array("traceroute", "exec_traceroute"), array($cmd));
     if (!is_array($_result)) {
         throw new lxexception("traceroute_failed", '', "");
     }
     if (count($_result) == 0) {
         throw new lxexception("traceroute_failed", '', "");
     }
     $object = new Traceroute(null, null, '__name__');
     return $object->Net_Traceroute_Result($_result, $_sysname);
 }
コード例 #14
0
ファイル: lib.php プロジェクト: lonelywoolf/hypervm
function setup_ssh_channel($source, $destination, $actualname)
{
    $cont = rl_exec_get(null, $source, "get_scpid", array());
    $cont = rl_exec_get(null, $destination, "setup_scpid", array($cont));
    $cont = rl_exec_get(null, $source, "setup_knownhosts", array("{$actualname}, {$cont}"));
}
コード例 #15
0
ファイル: lxclass.php プロジェクト: hypervm-ng/hypervm-ng
 function doSimpleRestore($bfile, $param)
 {
     global $gbl, $sgbl, $login, $ghtml;
     $progname = $sgbl->__var_program_name;
     $cprogname = ucfirst($progname);
     if ($this->isLocalhost('syncserver')) {
         $rem = lxbackup::getMetaData($bfile);
     } else {
         $rem = rl_exec_get($this->__masterserver, $this->syncserver, array("lxbackup", "getMetaData"), array($bfile));
     }
     $ob = $rem->bobject;
     dprint($ob->getClName());
     dprint($this->getClName());
     if ($ob->getClName() !== $this->getClName()) {
         throw new lxException('objectclassname_doesnt_match', '');
     }
     if ($gbl->__var_list_flag) {
         print "Contents of the backfile: Owner: {$ob->nname}.....\n";
     } else {
         print "Restoring backup for {$ob->nname}.....\n";
     }
     $ob->checkForConsistency(null, $param['_accountselect'], true);
     // Restore the currenct client's quota. The person who is doing the restoring souldn't able to escape his new quota.
     if ($this->isLogin()) {
         $ob->priv = $this->priv;
         if (isset($this->listpriv)) {
             $ob->listpriv = $this->listpriv;
         }
     }
     $ob->__var_bc_filename = $bfile;
     if (!$gbl->__var_list_flag) {
         $ob->was();
         $ob->simpleRestoreMeUpThere();
     }
 }
コード例 #16
0
ファイル: weblib.php プロジェクト: zseand/kloxo
 function updatePhpInfo($param)
 {
     global $gbl, $sgbl, $login, $ghtml;
     $ar['ip_address'] = $gbl->c_session->ip_address;
     $ar['session'] = $gbl->c_session->tsessionid;
     rl_exec_get(null, $this->syncserver, array("web", "createSession"), array($ar));
     $servar = base64_encode(serialize($ar));
     $gbl->__this_window_url = "http://{$this->nname}/__kloxo/phpinfo.php?session={$servar}";
     return null;
 }
コード例 #17
0
ファイル: checkpserver.php プロジェクト: digideskio/hypervm
<?php

include_once "htmllib/lib/include.php";
initProgram('admin');
$list = $login->getList('pserver');
foreach ($list as $l) {
    print "Checking {$l->nname}..";
    flush();
    try {
        $ret = rl_exec_get(null, $l->nname, "findOperatingSystem");
    } catch (Exception $e) {
        print "{$l->nname} gave error {$e->getMessage()}\n";
        continue;
    }
    print "Success... Got Information : ";
    print "{$ret['version']}\n";
}
コード例 #18
0
ファイル: collectquota.php プロジェクト: soar-team/kloxo
function getTotalUsage($class, $list)
{
    global $gbl, $sgbl, $login, $ghtml;
    $var = null;
    foreach ($list as $k => $d) {
        $needlist = null;
        foreach ($d as $dp) {
            $nlist = null;
            $nlist = $dp->getQuotaNeedVar();
            $needlist[$dp->getClName()] = $nlist;
        }
        //$userlist = get_namelist_from_objectlist($d, 'nname', 'username');
        $driver = $gbl->getSyncClass(null, $k, $class);
        try {
            $tvar = rl_exec_get(null, $k, array($class, 'findTotalUsage'), array($driver, $needlist));
            if ($class === 'client') {
                dprintr("{$k}: \n");
                dprintr($tvar);
            }
        } catch (Exception $e) {
            print "Could not get Remote Disk Usage {$k}\n";
        }
        $var = lx_array_merge(array($var, $tvar));
    }
    return $var;
}
コード例 #19
0
ファイル: sslcertlib.php プロジェクト: lonelywoolf/hypervm
 function updateSetProgramSSL($param)
 {
     $contentscer = $this->text_crt_content;
     $contentskey = $this->text_key_content;
     $contentsca = trim($this->text_ca_content);
     if (!$contentscer || !$contentskey) {
         throw new lxException("certificate_key_file_empty", '');
     }
     sslcert::checkAndThrow($contentscer, $contentskey, null);
     $contentpem = "{$contentscer}\n{$contentskey}";
     rl_exec_get(null, $param['slave_id'], array("sslcert", "setProgramSsl"), array($contentpem, $contentsca));
 }
コード例 #20
0
ファイル: gettraffic.php プロジェクト: soar-team/kloxo
function findtraffic($weblist, $mmaillist, $globaldomlist, $oldtime, $newtime)
{
    global $gbl, $login, $ghtml;
    $web_usage = null;
    $gen = $login->getObject('general')->generalmisc_b;
    $webstatsprog = $gen->webstatisticsprogram;
    if (!$webstatsprog) {
        $webstatsprog = "awstats";
    }
    foreach ($weblist as $k => $dlist) {
        $list = null;
        foreach ($dlist as $d) {
            $rt = new Remote();
            $rt->iisid = $d->getObject('web')->iisid;
            $rt->nname = $d->nname;
            $rt->customer_name = $d->getRealClientParentO()->getPathFromName('nname');
            $rt->priv = new Priv(null, null, $d->nname);
            $rt->priv->awstats_flag = $d->priv->awstats_flag;
            $rt->stats_username = $d->getObject('web')->stats_username;
            $rt->stats_password = $d->getObject('web')->stats_password;
            $rt->remove_processed_stats = $d->getObject('web')->remove_processed_stats;
            $list[$d->nname] = $rt;
        }
        $driverapp = $gbl->getSyncClass(null, $k, 'web');
        $web_usaget = rl_exec_get(null, $k, array("webtraffic", 'findTotaltrafficwebUsage'), array($driverapp, $webstatsprog, $list, $oldtime, $newtime));
        $web_usage = lx_array_merge(array($web_usage, $web_usaget));
    }
    foreach ($mmaillist as $k => $m) {
        $mlist = get_namelist_from_objectlist($m);
        $driverapp = $gbl->getSyncClass(null, $k, 'mmail');
        $mailusaget = rl_exec_get(null, $k, array("mailtraffic", 'findTotalmailQuota'), array($driverapp, $mlist, $oldtime, $newtime));
        $mailusage = lx_array_merge(array($mailusaget, $mailusage));
    }
    try {
        foreach ($weblist as $k => $w) {
            $wlist = get_namelist_from_objectlist($w);
            $driverapp = $gbl->getSyncClass(null, $k, 'ftpuser');
            $ftpusaget = rl_exec_get(null, $k, array("ftpusertraffic__{$driverapp}", 'findTotalQuota'), array($wlist, $oldtime, $newtime));
            $ftpusage = lx_array_merge(array($ftpusaget, $ftpusage));
        }
    } catch (exception $e) {
        print $e->getMessage() . "\n";
    }
    //dprintr($web_usage);
    //dprintr($mailusage);
    //dprintr($ftpusage);
    $res = "";
    foreach ($globaldomlist as $d) {
        $res['nname'] = "{$d->nname}:{$oldtime}:{$newtime}";
        $domt = new Domaintraffic(null, null, $res['nname']);
        $res['ddate'] = time();
        $res['timestamp'] = strftime("%c", $newtime);
        $res['oldtimestamp'] = strftime("%c", $oldtime);
        $res['comment'] = null;
        $res['parent_list'] = null;
        $res['parent_clname'] = $d->getClName();
        $res['webtraffic_usage'] = $web_usage[$d->nname];
        $res['mailtraffic_usage'] = $mailusage[$d->nname];
        $res['ftptraffic_usage'] = $ftpusage[$d->nname];
        $res['traffic_usage'] = $res['ftptraffic_usage'] + $res['webtraffic_usage'] + $res['mailtraffic_usage'];
        //		print_r($res);
        $domt->create($res);
        $domt->was();
    }
}
コード例 #21
0
ファイル: lxguardhitlib.php プロジェクト: soar-team/kloxo
 static function getDataFromServer($syncserver)
 {
     $list = rl_exec_get(null, $syncserver, "lxguard_main", array(true));
     if ($list) {
         foreach ($list as $k => $v) {
             foreach ($v as $kk => $vv) {
                 $l['nname'] = "{$k}___{$kk}";
                 $l['ddate'] = $kk;
                 $l['ipaddress'] = $k;
                 $l['access'] = $vv['access'];
                 $l['user'] = $vv['user'];
                 $l['service'] = $vv['service'];
                 $l['syncserver'] = $syncserver;
                 $obj = new lxguardhit(null, null, $l['nname']);
                 $obj->get();
                 if ($obj->dbaction === 'add') {
                     $obj->create($l);
                     $obj->write();
                 }
             }
         }
     }
 }
コード例 #22
0
ファイル: ffilelib.php プロジェクト: lonelywoolf/hypervm
 function get()
 {
     global $gbl, $sgbl, $login, $ghtml;
     static $st;
     if (isset($this->download_f) && $this->download_f) {
         $numlines = 'download';
     } else {
         if ($this->getParentO()->is__table('llog')) {
             $numlines = 20;
         } else {
             $numlines = null;
         }
     }
     if ($st > 0) {
         print "Called more than once\n";
     }
     $st++;
     $this->duflag = $gbl->getSessionV('ffile_duflag');
     $gbl->setSessionV('ffile_duflag', false);
     $this->numlines = $numlines;
     $stat = rl_exec_get($this->__masterserver, $this->__readserver, array("coreFfile", "getLxStat"), array($this->__username_o, $this->root, $this->getFullPath(), $numlines, $this->duflag));
     //dprintr($stat);
     if (!isset($this->readonly)) {
         $this->readonly = 'off';
     }
     $this->setFromArray($stat);
     if (!$this->isOn('readonly')) {
         $this->__flag_showheader = true;
     }
     $this->setFileType();
 }
コード例 #23
0
ファイル: clientcorelib.php プロジェクト: soar-team/kloxo
 function updateDomainPserver($param)
 {
     $list = $this->getList('domaina');
     $this->__old_websyncserver = $this->websyncserver;
     $this->__old_mmailsyncserver = $this->mmailsyncserver;
     $this->websyncserver = $param['websyncserver'];
     $this->mmailsyncserver = $param['mmailsyncserver'];
     $name = $this->getPathFromName();
     $this->setClientSyncServer();
     $this->setUpdateSubaction('createuser');
     $this->syncEntireObject();
     if ($this->__old_websyncserver !== $this->websyncserver) {
         $filepass = rl_exec_get(null, $this->__old_websyncserver, "cp_fileserv", array("__path_customer_root/{$name}"));
         rl_exec_get(null, $this->websyncserver, array("client__sync", "getFromRemote"), array($this->username, getFQDNforServer($this->__old_websyncserver), $filepass, "__path_customer_root", $name));
         rl_exec_get(null, $this->__old_websyncserver, "lxfile_rm_rec_content", array("__path_customer_root/{$name}"));
     }
     $cronlist = $this->getList('cron');
     foreach ($cronlist as $cron) {
         $nparam['syncserver'] = $param['websyncserver'];
         if ($cron->syncserver === $nparam['syncserver']) {
             continue;
         }
         $cron->doupdateSwitchserver($nparam);
     }
     $ftplist = $this->getList('ftpuser');
     foreach ($ftplist as $ftp) {
         $nparam['syncserver'] = $param['websyncserver'];
         if ($ftp->syncserver === $nparam['syncserver']) {
             continue;
         }
         $ftp->doupdateSwitchserver($nparam);
     }
     foreach ($list as $l) {
         $web = $l->getObject('web');
         $nparam['syncserver'] = $param['websyncserver'];
         if ($web->syncserver === $nparam['syncserver']) {
             continue;
         }
         $web->doupdateSwitchserver($nparam);
     }
     foreach ($list as $l) {
         $mmail = $l->getObject('mmail');
         $nparam['syncserver'] = $param['mmailsyncserver'];
         if ($mmail->syncserver === $nparam['syncserver']) {
             continue;
         }
         $mmail->doupdateSwitchserver($nparam);
     }
     $mysqldblist = $this->getList('mysqldb');
     $nparam['syncserver'] = $param['mysqldbsyncserver'];
     foreach ($mysqldblist as $mysqldb) {
         if ($mysqldb->syncserver === $nparam['syncserver']) {
             continue;
         }
         $mysqldb->doupdateSwitchserver($nparam);
     }
     foreach ($list as $l) {
         $mysqldblist = $l->getList('mysqldb');
         $nparam['syncserver'] = $param['mysqldbsyncserver'];
         foreach ((array) $mysqldblist as $mysqldb) {
             if ($mysqldb->syncserver === $nparam['syncserver']) {
                 continue;
             }
             $mysqldb->doupdateSwitchserver($nparam);
         }
     }
     $param['dnssyncserver_list'] = Client::fixListVariable($param['dnssyncserver_list']);
     foreach ($list as $l) {
         $dns = $l->getObject('dns');
         if ($param['newdnstemplate'] !== '--leave--') {
             $dnstemplatename = $param['newdnstemplate'];
             $dnstemplate = new Dnstemplate(null, null, $dnstemplatename);
             $dnstemplate->get();
             $dns->copyObjectWithSave($dnstemplate);
         }
         $dns->syncserver = implode(",", $param['dnssyncserver_list']);
         $l->dnspserver = $dns->syncserver;
         $l->setUpdateSubaction();
         $l->write();
         $dns->setUpdateSubaction('syncadd');
         $dns->was();
     }
     return $param;
 }
コード例 #24
0
ファイル: pserverlib.php プロジェクト: soar-team/kloxo
 function updatemailQueueDelete($param)
 {
     $this->updateAccountSel($param, "mailqueuedelete");
     rl_exec_get(null, $this->syncserver, array("mailqueue__qmail", 'QueueDelete'), array($this->mailqueuedelete_list));
     return null;
 }
コード例 #25
0
ファイル: clientmail.php プロジェクト: soar-team/kloxo
 static function initThisList($parent, $class)
 {
     $res = rl_exec_get(null, $parent->syncserver, array("clientmail", "readtotallog"), array());
     return $res;
 }
コード例 #26
0
ファイル: livemigrate.php プロジェクト: lonelywoolf/hypervm
function switchserver_main()
{
    global $argc, $argv;
    global $gbl, $sgbl, $login, $ghtml;
    //sleep(60);
    initProgram("admin");
    if ($argc === 1) {
        print "Usage: {$argv['0']} --class= --name= --v-syncserver= \n";
        exit;
    }
    try {
        $opt = parse_opt($argv);
        $param = get_variable($opt);
        dprintr($param);
        $class = $opt['class'];
        $name = $opt['name'];
        if (lx_core_lock("{$class}-{$name}.livemigrate")) {
            exit;
        }
        $object = new $class(null, 'localhost', $name);
        $object->get();
        if ($object->dbaction === 'add') {
            throw new lxException("no_object", '', '');
            exit;
        }
        if (!$object->syncserver) {
            print "No_synserver...\n";
            throw new lxException("no_syncserver", '', '');
            exit;
        }
        if ($param['syncserver'] === $object->syncserver) {
            print "No Change...\n";
            throw new lxException("no_change", '', '');
            exit;
        }
        $driverapp_old = $gbl->getSyncClass('localhost', $object->syncserver, $object->getClass());
        $driverapp_new = $gbl->getSyncClass('localhost', $param['syncserver'], $object->getClass());
        $oldserver = $object->syncserver;
        $newserver = $param['syncserver'];
        if ($driverapp_new !== $driverapp_old) {
            throw new lxException("the_drivers_are_different_in_two_servers", '', '');
        }
        $actualserver = getFQDNforServer($newserver);
        setup_ssh_channel($oldserver, $newserver, $actualserver);
        $ssh_port = db_get_value("sshconfig", $newserver, "ssh_port");
        if (!$ssh_port) {
            $ssh_port = "22";
        }
        $res = rl_exec_get(null, $oldserver, "exec_vzmigrate", array($object->vpsid, $actualserver, $ssh_port));
        list($ret, $error) = $res;
        if ($ret !== 0) {
            throw new lxException("vzmigrate_failed_due_to:{$error}", '', '');
        }
        $object->olddeleteflag = 'done';
        $object->syncserver = $newserver;
        $object->username = null;
        $object->makeSureTheUserExists();
        $object->setUpdateSubaction();
        $object->write();
    } catch (exception $e) {
        print $e->getMessage();
        /// hcak ahck... Chnage only the olddelete variable which is the mutex used for locking in the process of switch. The problem is we want to totally bail out if the switchserver fails. The corect way would be save after reverting the syncserve to the old value, but that's a bit risky. So we just use a hack to change only the olddeleteflag; Not a real hack.. This is the better way.
        $message = "{$e->getMessage()}";
        $message = str_replace("'", "", $message);
        write_to_object($object, $message, $param['syncserver']);
        $fullmesage = "Switch of {$object->getClass()}:{$object->nname} to {$param['syncserver']} failed due to {$e->getMessage()}";
        log_switch($fullmesage);
        mail($login->contactemail, "Switch Failed:", "{$fullmesage}\n");
        print "\n";
        exit;
    }
    mail($login->contactemail, "Switch Succeeded", "Switch Succeeded {$object->getClass()}:{$object->nname} to {$param['syncserver']}\n");
}
コード例 #27
0
ファイル: pservercorelib.php プロジェクト: soar-team/kloxo
 function fixDatabaseServers()
 {
     $db = new Sqlite($this->__masterserver, "pserver");
     $list = $db->getTable(array('nname'));
     foreach ($list as $l) {
         if ($this->isDeleted() && $l['nname'] === $this->nname) {
             continue;
         }
         $nlist[] = $l['nname'];
     }
     if ($this->dbaction === 'add') {
         $nlist[] = $this->nname;
     }
     sort($nlist);
     rl_exec_get($this->__masterserver, null, array('pserver', 'localfixDatabaseServers'), array($nlist));
 }
コード例 #28
0
ファイル: lxdb.php プロジェクト: soar-team/kloxo
 function updateLiveMigrate($param)
 {
     global $gbl, $sgbl, $login, $ghtml;
     if ($this->checkIfLockedForAction('livemigrate')) {
         throw new lxException("livemigrate_is_already_happening", "syncserver", $param['syncserver']);
     }
     $this->checkNotSame($param, array("syncserver"));
     $this->olddeleteflag = 'doing';
     $this->setUpdateSubaction();
     $this->write();
     rl_exec_get($this->__masterserver, 'localhost', array($this->get__table(), "exec_livemigrate"), array($this->get__table(), $this->nname, $param));
     // Needs this because the nname can change when the syncserver is changed. Nname never changes when you switch server. Need to make sure of that.
     /*
     	if (isset($this->__real_nname)) {
     $url = $ghtml->getFullUrl("goback=1&a=show&l[class]={$this->get__table()}&l[nname]=$this->nname");
     dprint($this->nname);
     $ghtml->print_redirect("$url&frm_smessage=switch_done");
     	} else {
     */
     $ghtml->print_redirect_back_success("switch_done", null);
     exit;
 }
コード例 #29
0
ファイル: processlib.php プロジェクト: lonelywoolf/hypervm
 static function initThisList($parent, $class)
 {
     global $gbl, $sgbl, $login, $ghtml;
     $driverapp = $gbl->getSyncClass($parent->__masterserver, $parent->__readserver, 'process');
     $res = rl_exec_get($parent->__masterserver, $parent->__readserver, array("process__{$driverapp}", "readProcessList"), null);
     return $res;
 }
コード例 #30
0
ファイル: servicelib.php プロジェクト: lonelywoolf/hypervm
 static function initThisList($parent, $class)
 {
     global $gbl, $sgbl, $login, $ghtml;
     $sql = new Sqlite($parent->__masterserver, "service");
     $driverapp = $gbl->getSyncClass($parent->__masterserver, $parent->__readserver, 'service');
     if (!$driverapp) {
         return;
     }
     $list = $sql->getRowsWhere("parent_clname = '{$parent->getClname()}'");
     foreach ($list as $l) {
         $nlist[$l['servicename']] = $l;
     }
     $res = rl_exec_get($parent->__masterserver, $parent->__readserver, array("service__{$driverapp}", 'getServiceDetails'), array($nlist));
     return $res;
 }