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; }
/** * 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); } }