Loading .gitignore +9 −1 Original line number Diff line number Diff line Loading @@ -12,7 +12,8 @@ databases_maintenance/backup/*.sql databases_maintenance/copy-prod-to-local.sh !databases_maintenance/backup/.gitkeep tmp tmp/* !tmp/.gitkeep sandbox debug DEV.md Loading Loading @@ -83,6 +84,9 @@ data/templates/timesheet_person_month.html.php !data/backup_oscar-empty.sql !data/oscar-demo-lasted.sql # PHPUnit tests/.phpunit.result.cache # Residus public/js/oscar/dist/index.html Loading @@ -107,3 +111,7 @@ Dockerfile_* *# public/documentation module/Demo # DOCKER dockerize/local/* !dockerize/local/.gitkeep .gitlab-ci.yml +3 −3 Original line number Diff line number Diff line image: localhost:5000/unicaen-dev-php7.3-apache image: localhost:5000/unicaen-dev-php7.4-apache before_script: - export http_proxy=http://10.14.128.99:3128 - export https_proxy=http://10.14.128.99:3128 - apt-get -qq update && apt-get -qq install -y curl wget gnupg2 build-essential libssl-dev git - wget https://getcomposer.org/download/1.10.8/composer.phar - php composer.phar install - wget https://getcomposer.org/download/latest-stable/composer.phar - php composer.phar install --ignore-platform-reqs # - curl -sL https://deb.nodesource.com/setup_6.x | bash # - apt-get -qq install -y nodejs # - npm install --silent Loading .gitmodules 0 → 100644 +3 −0 Original line number Diff line number Diff line [submodule "public/js/certic-ui-components"] path = public/js/certic-ui-components url = git@git.unicaen.fr:certic/certic-ui-components.git README.md +6 −2 Original line number Diff line number Diff line # OSCAR (Documentation technique) # OSCAR 2.12 "Spartan" (Documentation technique) - **VERSION 2.11 "MacClane"** ([Note de version](doc/versions/version-2.11.md)) ### Version actuelle - **VERSION 2.12 "Spartan"** ([Note de version](doc/versions/version-2.12.md) / [Mise à jour technique](doc/upgrade-to-spartan.md) ) ### Version antérieurs - VERSION 2.11 "MacClane" ([Note de version](doc/versions/version-2.11.md)) - VERSION 2.10 "Creed" ([Note de version](doc/versions/version-2.10.md)) - VERSION 2.9 "Matrix" ([Note de version](doc/versions/version-2.9.md)) - VERSION 2.8 "Callahan" ([Note de version](doc/versions/version-2.8.md)) Loading bin/oscar-worker.php +63 −103 Original line number Diff line number Diff line Loading @@ -13,6 +13,8 @@ // Chemin "simplifié" chdir(dirname(__DIR__)); $oscarCmd = '/usr/bin/php bin/oscar.php console '; // Autoload & Co require __DIR__ . '/../vendor/autoload.php'; Loading @@ -28,147 +30,106 @@ $oscarConfigurationService = $app->getServiceManager()->get(\Oscar\Service\Oscar // Worker $worker = new GearmanWorker(); $worker->addServer($oscarConfigurationService->getGearmanHost()); $worker->addFunction('indexPerson', 'oscarJob_indexPerson'); $worker->addFunction('personSearchUpdate', 'oscarJob_indexPerson'); $worker->addFunction('indexActivity', 'oscarJob_indexActivity'); $worker->addFunction('activitySearchUpdate', 'oscarJob_indexActivity'); $worker->addFunction('notificationActivityPerson', 'oscarJob_notificationActivityPerson'); $worker->addFunction('purgeNotificationsPersonActivity', 'oscarJob_purgeNotificationsPersonActivity'); $worker->addFunction('updateIndexActivity', 'oscarJob_updateIndexActivity'); $worker->addFunction('updateIndexPerson', 'oscarJob_updateIndexPerson'); $worker->addFunction('updateIndexOrganization', 'oscarJob_updateIndexOrganization'); $worker->addFunction('updateNotificationsActivity', 'oscarJob_updateNotificationsActivity'); $worker->addFunction('hello', 'oscarJob_hello'); // Affiche dans le journalctl -u oscarworker.service -f echo "OSCAR WORKER STARTED\n"; while($worker->work()); $execDev = "2"; echo "###################################################################\n"; echo "# OSCAR WORKER STARTED " . \Oscar\OscarVersion::getBuild() . " SPARTAN\n"; echo "# working directory : '" . __DIR__ . "'\n"; echo "###################################################################\n"; while ($worker->work()) { ; } function getServiceManager(){ function getServiceManager() { global $app; return $app->getServiceManager(); } function oscarJob_indexActivity(GearmanJob $job){ function oscarJob_updateIndexActivity(GearmanJob $job) { global $oscarCmd; $params = json_decode($job->workload()); try { if (!property_exists($params, 'activityid')) { throw new Exception("Paramètres manquant ID"); throw new Exception("Paramètres manquant 'activityid'"); } /** @var \Oscar\Service\ProjectGrantService $activityService */ $activityService = getServiceManager()->get(\Oscar\Service\ProjectGrantService::class); $activityid = $params->activityid; $activityService->getLoggerService()->info("[GEARMAN] Indexation de Activity $activityid"); $activity = $activityService->getActivityById($activityid); echo date('y-m-d H:i:s')." Rebuid Index [$activityid] $activity\n"; $activityService->searchUpdate($activity); $cmd = $oscarCmd . ' indexactivity \'{"activityid":' . $params->activityid . '}\''; echo "[worker] exec $cmd\n"; exec($cmd); } catch (Exception $e) { $activityService->getLoggerService()->info("[GEARMAN] Error " . $e->getMessage()); echo "[ERR] " . $e->getMessage() . "\n"; } } function oscarJob_indexPerson(GearmanJob $job){ function oscarJob_updateIndexPerson(GearmanJob $job) { global $oscarCmd; $params = json_decode($job->workload()); try { if (!property_exists($params, 'personid')) { throw new Exception("Paramètres manquant ID"); throw new Exception("Paramètres manquant 'personid'"); } /** @var \Oscar\Service\PersonService $personService */ $personService = getServiceManager()->get(\Oscar\Service\PersonService::class); $personId = $params->personid; getServiceManager()->get('Logger')->info("[GEARMAN] Indexation de Person $personId"); $person = $personService->getPerson($personId); echo date('y-m-d H:i:s')." Rebuid Index [$personId] $person\n"; $personService->getSearchEngineStrategy()->update($person); $personid = $params->personid; $cmd = $oscarCmd . ' indexperson \'{"personid":' . $personid . '}\''; echo "[worker] exec $cmd\n"; exec($cmd); } catch (Exception $e) { getServiceManager()->get('Logger')->info("[GEARMAN] Error " . $e->getMessage()); echo "[ERR] " . $e->getMessage() . "\n"; } } function oscarJob_notificationActivityPerson(GearmanJob $job){ function oscarJob_updateIndexOrganization(GearmanJob $job) { global $oscarCmd; $params = json_decode($job->workload()); try { if( !property_exists($params, 'personid') || !property_exists($params, 'activityid') ){ throw new Exception("Paramètres manquant ID"); if (!property_exists($params, 'organizationid')) { throw new Exception("Paramètres manquant 'organizationid'"); } /** @var \Oscar\Service\ProjectGrantService $projectGrantService */ $projectGrantService = getServiceManager()->get(\Oscar\Service\ProjectGrantService::class); /** @var \Oscar\Service\PersonService $personService */ $personService = getServiceManager()->get(\Oscar\Service\PersonService::class); /** @var \Oscar\Service\NotificationService $notificationService */ $notificationService = getServiceManager()->get(\Oscar\Service\NotificationService::class); $personId = $params->personid; $person = $personService->getPerson($personId); $activityId = $params->activityid; $activity = $projectGrantService->getActivityById($activityId); getServiceManager()->get('Logger')->info("[GEARMAN] Notification Person:$personId - Activity:$activityId"); echo date('y-m-d H:i:s')." Notification Activity Person [$activityId, $personId] $activity > $person\n"; $notificationService->generateNotificationsForActivity($activity, $person); $organizationid = $params->organizationid; $cmd = $oscarCmd . ' indexorganization \'{"organizationid":' . $organizationid . '}\''; echo "[worker] exec $cmd\n"; exec($cmd); } catch (Exception $e) { echo "[ERR] " . $e->getMessage() . "\n"; getServiceManager()->get('Logger')->info("[GEARMAN] Error " . $e->getMessage()); } } function oscarJob_updateNotificationsActivity(GearmanJob $job) { global $oscarCmd; function oscarJob_purgeNotificationsPersonActivity(GearmanJob $job){ $params = json_decode($job->workload()); try { if( !property_exists($params, 'personid') || !property_exists($params, 'activityid') ){ throw new Exception("Paramètres manquant ID"); if (!property_exists($params, 'activityid')) { throw new Exception("Paramètres manquant 'activityid'"); } /** @var \Oscar\Service\ProjectGrantService $projectGrantService */ $projectGrantService = getServiceManager()->get(\Oscar\Service\ProjectGrantService::class); /** @var \Oscar\Service\PersonService $personService */ $personService = getServiceManager()->get(\Oscar\Service\PersonService::class); /** @var \Oscar\Service\NotificationService $notificationService */ $notificationService = getServiceManager()->get(\Oscar\Service\NotificationService::class); $personId = $params->personid; $person = $personService->getPerson($personId); $activityId = $params->activityid; $activity = $projectGrantService->getActivityById($activityId); getServiceManager()->get('Logger')->info("[GEARMAN] Purge notification Person:$personId Activity:$activityId"); echo date('y-m-d H:i:s')." PURGE Notification Activity Person [$activityId, $personId] $activity > $person\n"; $notificationService->purgeNotificationsPersonActivity($activity, $person); $activityid = $params->activityid; $cmd = $oscarCmd . ' notificationsactivity \'{"activityid":' . $params->activityid . '}\''; echo "[worker] exec $cmd\n"; exec($cmd); } catch (Exception $e) { getServiceManager()->get('Logger')->info("[GEARMAN] Error " . $e->getMessage()); echo "[ERR] " . $e->getMessage() . "\n"; } } function oscarJob_hello(GearmanJob $job){ function oscarJob_hello(GearmanJob $job) { $params = json_decode($job->workload()); try { /** @var \Oscar\Service\ProjectGrantService $projectGrantService */ $projectGrantService = getServiceManager()->get(\Oscar\Service\ProjectGrantService::class); Loading @@ -181,13 +142,12 @@ function oscarJob_hello(GearmanJob $job){ /** @var \Monolog\Logger $loggerService */ $loggerService = getServiceManager()->get('Logger'); echo "Hello with " . print_r($params) . "\n"; echo "[worker] Hello with " . print_r($params) . "\n"; // Envoi d'un log vers OSCAR $loggerService->info("[GEARMAN] a bien reçu la tâche HELLO"); getServiceManager()->get('Logger')->info(" > [gearman:call] TEST OK]"); $job->sendComplete("TRAITEMENT RÉUSSI"); } catch (Exception $e) { $job->sendException("[ERR] HELLO FAIL : " . $e->getMessage()); } Loading Loading
.gitignore +9 −1 Original line number Diff line number Diff line Loading @@ -12,7 +12,8 @@ databases_maintenance/backup/*.sql databases_maintenance/copy-prod-to-local.sh !databases_maintenance/backup/.gitkeep tmp tmp/* !tmp/.gitkeep sandbox debug DEV.md Loading Loading @@ -83,6 +84,9 @@ data/templates/timesheet_person_month.html.php !data/backup_oscar-empty.sql !data/oscar-demo-lasted.sql # PHPUnit tests/.phpunit.result.cache # Residus public/js/oscar/dist/index.html Loading @@ -107,3 +111,7 @@ Dockerfile_* *# public/documentation module/Demo # DOCKER dockerize/local/* !dockerize/local/.gitkeep
.gitlab-ci.yml +3 −3 Original line number Diff line number Diff line image: localhost:5000/unicaen-dev-php7.3-apache image: localhost:5000/unicaen-dev-php7.4-apache before_script: - export http_proxy=http://10.14.128.99:3128 - export https_proxy=http://10.14.128.99:3128 - apt-get -qq update && apt-get -qq install -y curl wget gnupg2 build-essential libssl-dev git - wget https://getcomposer.org/download/1.10.8/composer.phar - php composer.phar install - wget https://getcomposer.org/download/latest-stable/composer.phar - php composer.phar install --ignore-platform-reqs # - curl -sL https://deb.nodesource.com/setup_6.x | bash # - apt-get -qq install -y nodejs # - npm install --silent Loading
.gitmodules 0 → 100644 +3 −0 Original line number Diff line number Diff line [submodule "public/js/certic-ui-components"] path = public/js/certic-ui-components url = git@git.unicaen.fr:certic/certic-ui-components.git
README.md +6 −2 Original line number Diff line number Diff line # OSCAR (Documentation technique) # OSCAR 2.12 "Spartan" (Documentation technique) - **VERSION 2.11 "MacClane"** ([Note de version](doc/versions/version-2.11.md)) ### Version actuelle - **VERSION 2.12 "Spartan"** ([Note de version](doc/versions/version-2.12.md) / [Mise à jour technique](doc/upgrade-to-spartan.md) ) ### Version antérieurs - VERSION 2.11 "MacClane" ([Note de version](doc/versions/version-2.11.md)) - VERSION 2.10 "Creed" ([Note de version](doc/versions/version-2.10.md)) - VERSION 2.9 "Matrix" ([Note de version](doc/versions/version-2.9.md)) - VERSION 2.8 "Callahan" ([Note de version](doc/versions/version-2.8.md)) Loading
bin/oscar-worker.php +63 −103 Original line number Diff line number Diff line Loading @@ -13,6 +13,8 @@ // Chemin "simplifié" chdir(dirname(__DIR__)); $oscarCmd = '/usr/bin/php bin/oscar.php console '; // Autoload & Co require __DIR__ . '/../vendor/autoload.php'; Loading @@ -28,147 +30,106 @@ $oscarConfigurationService = $app->getServiceManager()->get(\Oscar\Service\Oscar // Worker $worker = new GearmanWorker(); $worker->addServer($oscarConfigurationService->getGearmanHost()); $worker->addFunction('indexPerson', 'oscarJob_indexPerson'); $worker->addFunction('personSearchUpdate', 'oscarJob_indexPerson'); $worker->addFunction('indexActivity', 'oscarJob_indexActivity'); $worker->addFunction('activitySearchUpdate', 'oscarJob_indexActivity'); $worker->addFunction('notificationActivityPerson', 'oscarJob_notificationActivityPerson'); $worker->addFunction('purgeNotificationsPersonActivity', 'oscarJob_purgeNotificationsPersonActivity'); $worker->addFunction('updateIndexActivity', 'oscarJob_updateIndexActivity'); $worker->addFunction('updateIndexPerson', 'oscarJob_updateIndexPerson'); $worker->addFunction('updateIndexOrganization', 'oscarJob_updateIndexOrganization'); $worker->addFunction('updateNotificationsActivity', 'oscarJob_updateNotificationsActivity'); $worker->addFunction('hello', 'oscarJob_hello'); // Affiche dans le journalctl -u oscarworker.service -f echo "OSCAR WORKER STARTED\n"; while($worker->work()); $execDev = "2"; echo "###################################################################\n"; echo "# OSCAR WORKER STARTED " . \Oscar\OscarVersion::getBuild() . " SPARTAN\n"; echo "# working directory : '" . __DIR__ . "'\n"; echo "###################################################################\n"; while ($worker->work()) { ; } function getServiceManager(){ function getServiceManager() { global $app; return $app->getServiceManager(); } function oscarJob_indexActivity(GearmanJob $job){ function oscarJob_updateIndexActivity(GearmanJob $job) { global $oscarCmd; $params = json_decode($job->workload()); try { if (!property_exists($params, 'activityid')) { throw new Exception("Paramètres manquant ID"); throw new Exception("Paramètres manquant 'activityid'"); } /** @var \Oscar\Service\ProjectGrantService $activityService */ $activityService = getServiceManager()->get(\Oscar\Service\ProjectGrantService::class); $activityid = $params->activityid; $activityService->getLoggerService()->info("[GEARMAN] Indexation de Activity $activityid"); $activity = $activityService->getActivityById($activityid); echo date('y-m-d H:i:s')." Rebuid Index [$activityid] $activity\n"; $activityService->searchUpdate($activity); $cmd = $oscarCmd . ' indexactivity \'{"activityid":' . $params->activityid . '}\''; echo "[worker] exec $cmd\n"; exec($cmd); } catch (Exception $e) { $activityService->getLoggerService()->info("[GEARMAN] Error " . $e->getMessage()); echo "[ERR] " . $e->getMessage() . "\n"; } } function oscarJob_indexPerson(GearmanJob $job){ function oscarJob_updateIndexPerson(GearmanJob $job) { global $oscarCmd; $params = json_decode($job->workload()); try { if (!property_exists($params, 'personid')) { throw new Exception("Paramètres manquant ID"); throw new Exception("Paramètres manquant 'personid'"); } /** @var \Oscar\Service\PersonService $personService */ $personService = getServiceManager()->get(\Oscar\Service\PersonService::class); $personId = $params->personid; getServiceManager()->get('Logger')->info("[GEARMAN] Indexation de Person $personId"); $person = $personService->getPerson($personId); echo date('y-m-d H:i:s')." Rebuid Index [$personId] $person\n"; $personService->getSearchEngineStrategy()->update($person); $personid = $params->personid; $cmd = $oscarCmd . ' indexperson \'{"personid":' . $personid . '}\''; echo "[worker] exec $cmd\n"; exec($cmd); } catch (Exception $e) { getServiceManager()->get('Logger')->info("[GEARMAN] Error " . $e->getMessage()); echo "[ERR] " . $e->getMessage() . "\n"; } } function oscarJob_notificationActivityPerson(GearmanJob $job){ function oscarJob_updateIndexOrganization(GearmanJob $job) { global $oscarCmd; $params = json_decode($job->workload()); try { if( !property_exists($params, 'personid') || !property_exists($params, 'activityid') ){ throw new Exception("Paramètres manquant ID"); if (!property_exists($params, 'organizationid')) { throw new Exception("Paramètres manquant 'organizationid'"); } /** @var \Oscar\Service\ProjectGrantService $projectGrantService */ $projectGrantService = getServiceManager()->get(\Oscar\Service\ProjectGrantService::class); /** @var \Oscar\Service\PersonService $personService */ $personService = getServiceManager()->get(\Oscar\Service\PersonService::class); /** @var \Oscar\Service\NotificationService $notificationService */ $notificationService = getServiceManager()->get(\Oscar\Service\NotificationService::class); $personId = $params->personid; $person = $personService->getPerson($personId); $activityId = $params->activityid; $activity = $projectGrantService->getActivityById($activityId); getServiceManager()->get('Logger')->info("[GEARMAN] Notification Person:$personId - Activity:$activityId"); echo date('y-m-d H:i:s')." Notification Activity Person [$activityId, $personId] $activity > $person\n"; $notificationService->generateNotificationsForActivity($activity, $person); $organizationid = $params->organizationid; $cmd = $oscarCmd . ' indexorganization \'{"organizationid":' . $organizationid . '}\''; echo "[worker] exec $cmd\n"; exec($cmd); } catch (Exception $e) { echo "[ERR] " . $e->getMessage() . "\n"; getServiceManager()->get('Logger')->info("[GEARMAN] Error " . $e->getMessage()); } } function oscarJob_updateNotificationsActivity(GearmanJob $job) { global $oscarCmd; function oscarJob_purgeNotificationsPersonActivity(GearmanJob $job){ $params = json_decode($job->workload()); try { if( !property_exists($params, 'personid') || !property_exists($params, 'activityid') ){ throw new Exception("Paramètres manquant ID"); if (!property_exists($params, 'activityid')) { throw new Exception("Paramètres manquant 'activityid'"); } /** @var \Oscar\Service\ProjectGrantService $projectGrantService */ $projectGrantService = getServiceManager()->get(\Oscar\Service\ProjectGrantService::class); /** @var \Oscar\Service\PersonService $personService */ $personService = getServiceManager()->get(\Oscar\Service\PersonService::class); /** @var \Oscar\Service\NotificationService $notificationService */ $notificationService = getServiceManager()->get(\Oscar\Service\NotificationService::class); $personId = $params->personid; $person = $personService->getPerson($personId); $activityId = $params->activityid; $activity = $projectGrantService->getActivityById($activityId); getServiceManager()->get('Logger')->info("[GEARMAN] Purge notification Person:$personId Activity:$activityId"); echo date('y-m-d H:i:s')." PURGE Notification Activity Person [$activityId, $personId] $activity > $person\n"; $notificationService->purgeNotificationsPersonActivity($activity, $person); $activityid = $params->activityid; $cmd = $oscarCmd . ' notificationsactivity \'{"activityid":' . $params->activityid . '}\''; echo "[worker] exec $cmd\n"; exec($cmd); } catch (Exception $e) { getServiceManager()->get('Logger')->info("[GEARMAN] Error " . $e->getMessage()); echo "[ERR] " . $e->getMessage() . "\n"; } } function oscarJob_hello(GearmanJob $job){ function oscarJob_hello(GearmanJob $job) { $params = json_decode($job->workload()); try { /** @var \Oscar\Service\ProjectGrantService $projectGrantService */ $projectGrantService = getServiceManager()->get(\Oscar\Service\ProjectGrantService::class); Loading @@ -181,13 +142,12 @@ function oscarJob_hello(GearmanJob $job){ /** @var \Monolog\Logger $loggerService */ $loggerService = getServiceManager()->get('Logger'); echo "Hello with " . print_r($params) . "\n"; echo "[worker] Hello with " . print_r($params) . "\n"; // Envoi d'un log vers OSCAR $loggerService->info("[GEARMAN] a bien reçu la tâche HELLO"); getServiceManager()->get('Logger')->info(" > [gearman:call] TEST OK]"); $job->sendComplete("TRAITEMENT RÉUSSI"); } catch (Exception $e) { $job->sendException("[ERR] HELLO FAIL : " . $e->getMessage()); } Loading