Пример #1
0
 public static function install($data, &$fail, &$errno, &$error)
 {
     $res = array();
     if (!$fail) {
         // die /platform Befehle auslösen
         $list = Einstellungen::getLinks('postPlatform');
         $platform = Installation::PlattformZusammenstellen($data);
         $multiRequestHandle = new Request_MultiRequest();
         for ($i = 0; $i < count($list); $i++) {
             // inits all components
             $handler = Request_CreateRequest::createPost($list[$i]->getAddress() . '/platform', array(), Platform::encodePlatform($platform));
             $multiRequestHandle->addRequest($handler);
         }
         $answer = $multiRequestHandle->run();
         for ($i = 0; $i < count($list); $i++) {
             $url = $list[$i]->getTargetName();
             $result = $answer[$i];
             $res[$url] = array();
             if (isset($result['content']) && isset($result['status']) && $result['status'] === 201) {
                 $res[$url]['status'] = 201;
             } else {
                 $res[$url]['status'] = 409;
                 $fail = true;
                 if (isset($result['status'])) {
                     $errno = $result['status'];
                     $res[$url]['status'] = $result['status'];
                 }
             }
         }
     }
     return $res;
 }
 public static function install($data, &$fail, &$errno, &$error)
 {
     $res = array();
     if (!$fail) {
         // die /course Befehle der LCourse auslösen
         // alle Veranstaltungen abrufen
         $multiRequestHandle = new Request_MultiRequest();
         $handler = Request_CreateRequest::createGet($data['PL']['url'] . '/DB/DBCourse/course', array(), '');
         $multiRequestHandle->addRequest($handler);
         $result = $multiRequestHandle->run();
         if (isset($result[0]['content']) && isset($result[0]['status']) && $result[0]['status'] === 200) {
             // /course ausloesen
             $courses = Course::decodeCourse($result[0]['content']);
             if (!is_array($courses)) {
                 $courses = array($courses);
             }
             $multiRequestHandle = new Request_MultiRequest();
             foreach ($courses as $course) {
                 $handler = Request_CreateRequest::createPost($data['PL']['url'] . '/logic/LCourse/course', array(), Course::encodeCourse($course));
                 $multiRequestHandle->addRequest($handler);
             }
             $answer = $multiRequestHandle->run();
             if (count($courses) != count($answer)) {
                 $fail = true;
                 $error = Language::Get('courses', 'differentAnswers') . "\n" . Language::Get('main', 'line') . ':' . __LINE__;
             }
             $i = 0;
             foreach ($courses as $course) {
                 $result = $answer[$i];
                 $res[$course->getId()] = array();
                 $res[$course->getId()]['course'] = $course;
                 if (isset($result['content']) && isset($result['status']) && $result['status'] === 201) {
                     $res[$course->getId()]['status'] = 201;
                 } else {
                     $res[$course->getId()]['status'] = 409;
                     $fail = true;
                     if (isset($result['status'])) {
                         $errno = $result['status'];
                         $res[$course->getId()]['status'] = $result['status'];
                     }
                 }
                 $i++;
                 if ($i >= count($answer)) {
                     break;
                 }
             }
         } else {
             $fail = true;
             $error = "GET /DB/DBCourse/course " . Language::Get('courses', 'operationFailed');
             if (isset($result[0]['status'])) {
                 $errno = $result[0]['status'];
             }
         }
     }
     return $res;
 }
Пример #3
0
 /**
  * Initializes all components, with the data, which can be found in database.
  */
 public function sendComponentDefinitions()
 {
     $this->_app->response->setStatus(200);
     // starts a query
     ob_start();
     eval("?>" . file_get_contents(dirname(__FILE__) . '/Sql/GetComponentDefinitions.sql'));
     $sql = ob_get_contents();
     ob_end_clean();
     $result = DBRequest::request($sql, false, parse_ini_file(dirname(__FILE__) . '/config.ini', TRUE));
     // checks the correctness of the query
     if ((!isset($result['errno']) || !$result['errno']) && $result['content']) {
         $data = DBJson::getRows($result['content']);
         $Components = DBJson::getObjectsByAttributes($data, Component::getDBPrimaryKey(), Component::getDBConvert());
         $Links = DBJson::getObjectsByAttributes($data, Link::getDBPrimaryKey(), Link::getDBConvert());
         $objects = DBJson::concatResultObjectLists($data, $Components, Component::getDBPrimaryKey(), Component::getDBConvert()['CO_links'], $Links, Link::getDBPrimaryKey());
         $request = new Request_MultiRequest();
         $data = parse_ini_file(dirname(__FILE__) . '/config.ini', TRUE);
         $tempObjects = array();
         foreach ($objects as $object) {
             $object = Component::decodeComponent(json_encode($object));
             // prüfen, welche Komponente auf diesem Server ist
             if (strpos($object->getAddress() . '/', $data['PL']['urlExtern'] . '/') === false) {
                 continue;
             }
             $object->setAddress($data['PL']['url'] . substr($object->getAddress(), strlen($data['PL']['urlExtern'])));
             $links = $object->getLinks();
             foreach ($links as &$link) {
                 if (strpos($link->getAddress() . '/', $data['PL']['urlExtern'] . '/') === false) {
                     continue;
                 }
                 $link->setAddress($data['PL']['url'] . substr($link->getAddress(), strlen($data['PL']['urlExtern'])));
             }
             $object->setLinks($links);
             $result = Request_CreateRequest::createPost($object->getAddress() . '/control', array(), Component::encodeComponent($object));
             $tempObjects[] = $object;
             $request->addRequest($result);
         }
         $results = $request->run();
         $objects = $tempObjects;
         $i = 0;
         $res = array();
         foreach ($objects as $object) {
             $object = Component::decodeComponent(Component::encodeComponent($object));
             $result = $results[$i++];
             $newObject = new Component();
             $newObject->setId($object->getId());
             $newObject->setName($object->getName());
             $newObject->setAddress($object->getAddress());
             $newObject->setDef($object->getDef());
             $newObject->setStatus($result['status']);
             $res[] = $newObject;
             if ($result['status'] != 201) {
                 $add = '';
                 $this->_app->response->setStatus(409);
                 if (isset($result['content'])) {
                     $add = $result['content'];
                 }
                 Logger::Log($result['status'] . '--' . $object->getName() . '--' . $object->getAddress() . "\n" . $add . "\n", LogLevel::ERROR);
             }
         }
         $this->_app->response->setBody(json_encode($res));
     } else {
         Logger::Log('GET SendComponentDefinitions failed', LogLevel::ERROR);
         $this->_app->response->setStatus(isset($result['status']) ? $result['status'] : 409);
     }
 }