Esempio n. 1
0
 /**
  * @param ApiQuery $queryModule
  * @param string $moduleName
  * @param string $paramPrefix
  */
 public function __construct(ApiQuery $queryModule, $moduleName, $paramPrefix = '')
 {
     parent::__construct($queryModule->getMain(), $moduleName, $paramPrefix);
     $this->mQueryModule = $queryModule;
     $this->mDb = null;
     $this->resetQueryParams();
 }
 public function execute()
 {
     $user = new User(1);
     if (!$user->checkRights('administrator')) {
         addNotification($this->_LANG['misc']["You don't have permissions"], 'warning');
         return 0;
     }
     $frequency = array();
     $frequency['type'] = $_POST['n-start'];
     switch ($_POST['n-start']) {
         case 'n-minutes':
             $frequency['n-minutes-minute'] = (int) $_POST['n-minutes-minute'];
             break;
         case 'n-every-hour':
             $frequency['n-every-hour-minute'] = (int) $_POST['n-every-hour-minute'];
             break;
         case 'n-day':
             $frequency['n-day-hour'] = (int) $_POST['n-day-hour'];
             $frequency['n-day-minute'] = (int) $_POST['n-day-minute'];
             break;
         case 'n-month':
             $frequency['n-month-day'] = (int) $_POST['n-month-day'];
             $frequency['n-month-hour'] = (int) $_POST['n-month-hour'];
             $frequency['n-month-minutes'] = (int) $_POST['n-month-minutes'];
             break;
         case 'n-once':
             $frequency['n-once-month'] = (int) $_POST['n-once-month'];
             $frequency['n-once-day'] = (int) $_POST['n-once-day'];
             $frequency['n-once-year'] = (int) $_POST['n-once-year'];
             $frequency['n-once-hour'] = (int) $_POST['n-once-hour'];
             $frequency['n-once-minutes'] = (int) $_POST['n-once-minutes'];
             break;
     }
     $sid = (int) $_POST['sid'];
     $serversList = new JsonDB(__serversdb);
     $newTask = array();
     $newTask['added'] = time();
     $newTask['type'] = 'mysql_backup';
     $newTask['title'] = $_POST['title'];
     $newTask['status'] = $_POST['status'];
     $newTask['execStatus'] = 0;
     $newTask['lastExec'] = time();
     $newTask['deep'] = (int) $_POST['deep'];
     $newTask['frequency'] = $frequency;
     $newTask['mysql-backup-address'] = $_POST['mysql-backup-address'];
     $newTask['mysql-backup-name'] = $_POST['mysql-backup-name'];
     $newTask['mysql-backup-user'] = $_POST['mysql-backup-user'];
     $newTask['mysql-backup-password'] = $_POST['mysql-backup-password'];
     $query = new ApiQuery($serversList->data[$sid]['address'], $serversList->data[$sid]['apiKey']);
     $result = $query->addTask($newTask, true);
     if ($result['responseStatus'] == 'success') {
         $id = (int) $result['id'];
         $serversList->data[$sid]['tasks'][$id] = $result['task'];
         $serversList->saveToFile(__serversdb);
     }
     $this->redirect('?r=servers/server_tasks_list&id=' . $sid);
 }
 /**
  * @param $type string
  * @return array
  */
 private function getQueryModules($type)
 {
     $res = array();
     $params = $this->apiQuery->getAllowedParams();
     foreach ($params[$type][ApiBase::PARAM_TYPE] as $module) {
         $res[] = array('value' => "{$type}={$module}", 'text' => "   {$type}={$module}");
     }
     sort($res);
     array_unshift($res, array('value' => "-{$type}-", 'text' => wfMessage("apisb-query-{$type}")->parse(), 'attributes' => array('disabled' => 'disabled')));
     return $res;
 }
Esempio n. 4
0
 /**
  * Test if all classes in the query module manager exists
  */
 public function testClassNamesInModuleManager()
 {
     global $wgAutoloadLocalClasses, $wgAutoloadClasses;
     // wgAutoloadLocalClasses has precedence, just like in includes/AutoLoader.php
     $classes = $wgAutoloadLocalClasses + $wgAutoloadClasses;
     $api = new ApiMain(new FauxRequest(['action' => 'query', 'meta' => 'siteinfo']));
     $queryApi = new ApiQuery($api, 'query');
     $modules = $queryApi->getModuleManager()->getNamesWithClasses();
     foreach ($modules as $name => $class) {
         $this->assertArrayHasKey($class, $classes, 'Class ' . $class . ' for api module ' . $name . ' not in autoloader (with exact case)');
     }
 }
 public function execute()
 {
     // Get parameters
     $params = $this->extractRequestParams();
     $result = $this->getResult();
     $queryObj = new ApiQuery($this->getMain(), 'query');
     $r = array();
     if (is_array($params['modules'])) {
         $modArr = $this->getMain()->getModules();
         $r['modules'] = array();
         foreach ($params['modules'] as $m) {
             if (!isset($modArr[$m])) {
                 $r['modules'][] = array('name' => $m, 'missing' => '');
                 continue;
             }
             $obj = new $modArr[$m]($this->getMain(), $m);
             $a = $this->getClassInfo($obj);
             $a['name'] = $m;
             $r['modules'][] = $a;
         }
         $result->setIndexedTagName($r['modules'], 'module');
     }
     if (is_array($params['querymodules'])) {
         $qmodArr = $queryObj->getModules();
         $r['querymodules'] = array();
         foreach ($params['querymodules'] as $qm) {
             if (!isset($qmodArr[$qm])) {
                 $r['querymodules'][] = array('name' => $qm, 'missing' => '');
                 continue;
             }
             $obj = new $qmodArr[$qm]($this, $qm);
             $a = $this->getClassInfo($obj);
             $a['name'] = $qm;
             $a['querytype'] = $queryObj->getModuleType($qm);
             $r['querymodules'][] = $a;
         }
         $result->setIndexedTagName($r['querymodules'], 'module');
     }
     if ($params['mainmodule']) {
         $r['mainmodule'] = $this->getClassInfo($this->getMain());
     }
     if ($params['pagesetmodule']) {
         $pageSet = new ApiPageSet($queryObj);
         $r['pagesetmodule'] = $this->getClassInfo($pageSet);
     }
     $result->addValue(null, $this->getModuleName(), $r);
 }
 public function testPrefixes()
 {
     $main = new ApiMain(new FauxRequest());
     $query = new ApiQuery($main, 'foo', 'bar');
     $modules = $query->getModules();
     $prefixes = array();
     foreach ($modules as $name => $class) {
         $module = new $class($main, $name);
         $prefix = $module->getModulePrefix();
         if (isset($prefixes[$prefix])) {
             $this->fail("Module prefix '{$prefix}' is shared between {$class} and {$prefixes[$prefix]}");
         }
         $prefixes[$module->getModulePrefix()] = $class;
     }
     $this->assertTrue(true);
     // dummy call to make this test non-incomplete
 }
Esempio n. 7
0
 public function getAllowedParams()
 {
     $modules = $this->getMain()->getModuleManager()->getNames('action');
     sort($modules);
     $querymodules = $this->queryObj->getModuleManager()->getNames();
     sort($querymodules);
     $formatmodules = $this->getMain()->getModuleManager()->getNames('format');
     sort($formatmodules);
     return array('modules' => array(ApiBase::PARAM_ISMULTI => true, ApiBase::PARAM_TYPE => $modules), 'querymodules' => array(ApiBase::PARAM_ISMULTI => true, ApiBase::PARAM_TYPE => $querymodules), 'mainmodule' => false, 'pagesetmodule' => false, 'formatmodules' => array(ApiBase::PARAM_ISMULTI => true, ApiBase::PARAM_TYPE => $formatmodules));
 }
Esempio n. 8
0
 /**
  * Module for displaying help
  */
 public function execute()
 {
     // Get parameters
     $params = $this->extractRequestParams();
     if (!isset($params['modules']) && !isset($params['querymodules'])) {
         $this->dieUsage('', 'help');
     }
     $this->getMain()->setHelp();
     $result = $this->getResult();
     $queryObj = new ApiQuery($this->getMain(), 'query');
     $r = array();
     if (is_array($params['modules'])) {
         $modArr = $this->getMain()->getModules();
         foreach ($params['modules'] as $m) {
             if (!isset($modArr[$m])) {
                 $r[] = array('name' => $m, 'missing' => '');
                 continue;
             }
             $module = new $modArr[$m]($this->getMain(), $m);
             $r[] = $this->buildModuleHelp($module, 'action');
         }
     }
     if (is_array($params['querymodules'])) {
         $qmodArr = $queryObj->getModules();
         foreach ($params['querymodules'] as $qm) {
             if (!isset($qmodArr[$qm])) {
                 $r[] = array('name' => $qm, 'missing' => '');
                 continue;
             }
             $module = new $qmodArr[$qm]($this, $qm);
             $type = $queryObj->getModuleType($qm);
             if ($type === null) {
                 $r[] = array('name' => $qm, 'missing' => '');
                 continue;
             }
             $r[] = $this->buildModuleHelp($module, $type);
         }
     }
     $result->setIndexedTagName($r, 'module');
     $result->addValue(null, $this->getModuleName(), $r);
 }
 /**
  * @param $type string
  * @return array
  */
 private function getQueryModules($type)
 {
     $options = array();
     $params = $this->apiQuery->getAllowedParams();
     sort($params[$type][ApiBase::PARAM_TYPE]);
     foreach ($params[$type][ApiBase::PARAM_TYPE] as $module) {
         $options["{$type}={$module}"] = "{$type}={$module}";
     }
     $optgroup = array();
     $optgroup[$this->msg("apisb-query-{$type}")->parse()] = $options;
     return $optgroup;
 }
Esempio n. 10
0
 public function execute()
 {
     $user = new User(1);
     if (!$user->checkRights('administrator')) {
         addNotification($this->_LANG['misc']["You don't have permissions"], 'warning');
         return 0;
     }
     $id = (int) $_POST['id'];
     $sid = (int) $_POST['sid'];
     $serversList = new JsonDB(__serversdb);
     $query = new ApiQuery($serversList->data[$sid]['address'], $serversList->data[$sid]['apiKey']);
     $result = $query->deleteTask($id, true);
     if ($result['responseStatus'] == 'success') {
         $id = (int) $result['id'];
         unset($serversList->data[$sid]['tasks'][$id]);
         $serversList->saveToFile(__serversdb);
         $dir = __archiveDIR . "servers/{$sid}/{$id}";
         deleteDir($dir);
     }
     $this->redirect('?r=servers/server_tasks_list&id=' . $sid);
 }
Esempio n. 11
0
 public function prepare()
 {
     $user = new User(1);
     if (!$user->isAuthorized()) {
         $this->redirect('?r=auth');
     }
     $header = new PageHeader($this->curpage, $this->db, $this->config);
     $footer = new PageFooter($this->curpage, $this->db, $this->config);
     $topMenu = new TopMenu($this->curpage, $this->db, $this->config);
     $topMenu->prepare();
     $serversDB = new JsonDB(__serversdb);
     $serverId = (int) $_GET['id'];
     $server = $serversDB->data[$serverId];
     $query = new ApiQuery($server['address'], $server['apiKey']);
     $tasksList = $query->getTasksList(true);
     $header->data['title'] = $server['name'];
     $this->data['server'] = $server;
     $this->data['tasksList'] = $tasksList;
     $this->data['header'] = $header->show();
     $this->data['footer'] = $footer->show();
     $this->data['topMenu'] = $topMenu->show();
 }
 /**
  * @param $type string
  * @return array
  */
 private function getQueryModules($type)
 {
     $options = array();
     $modules = $this->apiQuery->getModuleManager()->getNames($type);
     sort($modules);
     foreach ($modules as $module) {
         $options["{$type}={$module}"] = "{$type}={$module}";
     }
     // Give grep a chance to find the usages:
     // apisb-query-prop, apisb-query-list, apisb-query-meta
     $optgroup = array();
     $optgroup[$this->msg("apisb-query-{$type}")->parse()] = $options;
     return $optgroup;
 }
 /**
  * @param $type string
  * @return array
  */
 private function getQueryModules($type)
 {
     $options = array();
     $params = $this->apiQuery->getAllowedParams();
     sort($params[$type][ApiBase::PARAM_TYPE]);
     foreach ($params[$type][ApiBase::PARAM_TYPE] as $module) {
         $options["{$type}={$module}"] = "{$type}={$module}";
     }
     // Give grep a chance to find the usages:
     // apisb-query-prop, apisb-query-list, apisb-query-meta
     $optgroup = array();
     $optgroup[$this->msg("apisb-query-{$type}")->parse()] = $options;
     return $optgroup;
 }
Esempio n. 14
0
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
echo "Servers Service started [" . date('d.m.Y h:i', time()) . "] with PID= " . getmypid() . "\n";
include __DIR__ . '/conf.php';
include __corePath . 'libs/service.php';
include __corePath . 'libs/ApiQuery.php';
include __corePath . 'libs/jsonDB.php';
if (checkLock('servers')) {
    die("Found .lock file, exit.\n");
}
lock('servers');
$serversList = new JsonDB(__serversdb);
foreach ($serversList->data as $key => $server) {
    if (checkServerTestTime($server, 60)) {
        $query = new ApiQuery($server['address'], $server['apiKey']);
        $info = $query->getServerInfo(true);
        if ($info['responseStatus'] == 'ok') {
            $serversList->data[$key]['name'] = $info['serverName'];
            $serversList->data[$key]['tasksCount'] = $info['tasksCount'];
            $serversList->data[$key]['tasks'] = $info['tasks'];
            $serversList->data[$key]['freeSpace'] = $info['freeSpace'];
            $serversList->data[$key]['lastCheck'] = time();
            $serversList->data[$key]['status'] = 1;
            if ($server['archSync']) {
                $tasksfiles = $query->getTasksFiles(true);
                // ----------------------------------
                foreach ($tasksfiles as $taskId => $tmpFiles) {
                    $files = array();
                    foreach ($tmpFiles as $f) {
                        $files[$f['updated']] = $f;
Esempio n. 15
0
 public function __construct($main, $action)
 {
     $this->mAction = $action;
     parent::__construct($main, $action);
 }