Skip to content
Snippets Groups Projects
Commit 0e215e88 authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Ligne de commande d'import : nouvel argument --verbose pour obtenir plus de logs.

parent b87388ac
No related branches found
No related tags found
No related merge requests found
...@@ -40,20 +40,22 @@ class Module ...@@ -40,20 +40,22 @@ class Module
{ {
return [ return [
// command // command
'import --service= --etablissement= [--source-code=] [--synchronize=] [--em=]' => "Importer toutes les données d'un service d'un établissement.", 'import --service= --etablissement= [--source-code=] [--synchronize=] [--verbose] [--em=]' => "Importer toutes les données d'un service d'un établissement.",
// parameters // parameters
['--service', "Requis. Identifiant du service, ex: 'variable'"], ['--service', "Requis. Identifiant du service, ex: 'variable'"],
['--etablissement', "Requis. Identifiant de l'établissement, ex: 'UCN'"], ['--etablissement', "Requis. Identifiant de l'établissement, ex: 'UCN'"],
['--source-code', "Facultatif. Source code du seul enregistrement à importer"], ['--source-code', "Facultatif. Source code du seul enregistrement à importer"],
['--synchronize', "Facultatif. Réaliser ou non la synchro SRC_XXX => XXX. Valeurs possibles: 0, 1. Valeur par défaut: 1."], ['--synchronize', "Facultatif. Réaliser ou non la synchro SRC_XXX => XXX. Valeurs possibles: 0, 1. Valeur par défaut: 1."],
['--verbose', "Facultatif. Activer les logs verbeux (debug)."],
['--em', "Facultatif. Nom de l'EntityManager à utiliser. Valeur par défaut: 'orm_default'."], ['--em', "Facultatif. Nom de l'EntityManager à utiliser. Valeur par défaut: 'orm_default'."],
// command // command
'import-all --etablissement= [--synchronize=] [--em=]' => "Importer toutes les données de tous les serviceq d'un établissement.", 'import-all --etablissement= [--synchronize=] [--verbose] [--em=]' => "Importer toutes les données de tous les serviceq d'un établissement.",
// parameters // parameters
['--etablissement', "Requis. Identifiant de l'établissement, ex: 'UCN'"], ['--etablissement', "Requis. Identifiant de l'établissement, ex: 'UCN'"],
['--breakOnServiceNotFound', "Facultatif. Faut-il stopper si un service appelé n'existe pas. Valeurs possibles: 0, 1. Valeur par défaut: 1."], ['--breakOnServiceNotFound', "Facultatif. Faut-il stopper si un service appelé n'existe pas. Valeurs possibles: 0, 1. Valeur par défaut: 1."],
['--synchronize', "Facultatif. Réaliser ou non la synchro SRC_XXX => XXX. Valeurs possibles: 0, 1. Valeur par défaut: 1."], ['--synchronize', "Facultatif. Réaliser ou non la synchro SRC_XXX => XXX. Valeurs possibles: 0, 1. Valeur par défaut: 1."],
['--verbose', "Facultatif. Activer les logs verbeux (debug)."],
['--em', "Facultatif. Nom de l'EntityManager à utiliser. Valeur par défaut: 'orm_default'."], ['--em', "Facultatif. Nom de l'EntityManager à utiliser. Valeur par défaut: 'orm_default'."],
// command // command
......
...@@ -67,7 +67,7 @@ return [ ...@@ -67,7 +67,7 @@ return [
'import-console' => [ 'import-console' => [
'type' => Simple::class, 'type' => Simple::class,
'options' => [ 'options' => [
'route' => 'import --service= --etablissement= [--source-code=] [--synchronize=] [--em=]', 'route' => 'import --service= --etablissement= [--source-code=] [--synchronize=] [--verbose] [--em=]',
'defaults' => [ 'defaults' => [
'controller' => Import\Controller\ImportController::class, 'controller' => Import\Controller\ImportController::class,
'action' => 'import-console', 'action' => 'import-console',
...@@ -77,7 +77,7 @@ return [ ...@@ -77,7 +77,7 @@ return [
'import-all-console' => [ 'import-all-console' => [
'type' => Simple::class, 'type' => Simple::class,
'options' => [ 'options' => [
'route' => 'import-all --etablissement= [--breakOnServiceNotFound=] [--synchronize=] [--em=]', 'route' => 'import-all --etablissement= [--breakOnServiceNotFound=] [--synchronize=] [--verbose] [--em=]',
'defaults' => [ 'defaults' => [
'controller' => Import\Controller\ImportController::class, 'controller' => Import\Controller\ImportController::class,
'action' => 'import-all-console', 'action' => 'import-all-console',
......
...@@ -132,19 +132,21 @@ class ImportController extends AbstractActionController ...@@ -132,19 +132,21 @@ class ImportController extends AbstractActionController
* avec les tables destinations. * avec les tables destinations.
* *
* @return ViewModel * @return ViewModel
* @throws StructureNotFoundException
*/ */
public function importAction() public function importAction()
{ {
$service = $this->params('service'); $service = $this->params('service');
$codeStructure = $this->params('etablissement'); // ex: 'UCN' $codeStructure = $this->params('etablissement'); // ex: 'UCN'
$sourceCode = $this->params('source_code'); $sourceCode = $this->params('source_code');
$verbose = (bool) $this->params('verbose', 0);
$queryParams = $this->params()->fromQuery(); $queryParams = $this->params()->fromQuery();
$etablissement = $this->fetchEtablissementByCodeStructure($codeStructure); $etablissement = $this->fetchEtablissementByCodeStructure($codeStructure);
$stream = fopen('php://memory','r+'); $stream = fopen('php://memory','r+');
$this->setLoggerStream($stream); $this->setLoggerStream($stream, $verbose);
$this->importService->import($service, $etablissement, $sourceCode, $queryParams); $this->importService->import($service, $etablissement, $sourceCode, $queryParams);
...@@ -165,15 +167,17 @@ class ImportController extends AbstractActionController ...@@ -165,15 +167,17 @@ class ImportController extends AbstractActionController
* des données obtenues avec les tables destinations. * des données obtenues avec les tables destinations.
* *
* @return ViewModel * @return ViewModel
* @throws StructureNotFoundException
*/ */
public function importAllAction() public function importAllAction()
{ {
$codeStructure = $this->params('etablissement'); // ex: 'UCN' $codeStructure = $this->params('etablissement'); // ex: 'UCN'
$verbose = (bool) $this->params('verbose', 0);
$etablissement = $this->fetchEtablissementByCodeStructure($codeStructure); $etablissement = $this->fetchEtablissementByCodeStructure($codeStructure);
$stream = fopen('php://memory','r+'); $stream = fopen('php://memory','r+');
$this->setLoggerStream($stream); $this->setLoggerStream($stream, $verbose);
$this->importService->importAll($etablissement); $this->importService->importAll($etablissement);
...@@ -196,6 +200,7 @@ class ImportController extends AbstractActionController ...@@ -196,6 +200,7 @@ class ImportController extends AbstractActionController
{ {
$codeEtablissement = $this->params('etablissement'); $codeEtablissement = $this->params('etablissement');
$sourceCodeThese = $this->params('source_code'); $sourceCodeThese = $this->params('source_code');
$verbose = (bool) $this->params('verbose', 0);
if (! $sourceCodeThese) { if (! $sourceCodeThese) {
throw new LogicException("Le source code de la thèse est requis"); throw new LogicException("Le source code de la thèse est requis");
...@@ -210,7 +215,7 @@ class ImportController extends AbstractActionController ...@@ -210,7 +215,7 @@ class ImportController extends AbstractActionController
} }
$stream = fopen('php://memory','r+'); $stream = fopen('php://memory','r+');
$this->setLoggerStream($stream); $this->setLoggerStream($stream, $verbose);
$this->importService->updateThese($these); $this->importService->updateThese($these);
...@@ -226,6 +231,9 @@ class ImportController extends AbstractActionController ...@@ -226,6 +231,9 @@ class ImportController extends AbstractActionController
]); ]);
} }
/**
* @throws StructureNotFoundException
*/
public function importConsoleAction() public function importConsoleAction()
{ {
$service = $this->params('service'); $service = $this->params('service');
...@@ -233,8 +241,9 @@ class ImportController extends AbstractActionController ...@@ -233,8 +241,9 @@ class ImportController extends AbstractActionController
$sourceCode = $this->params('source-code'); $sourceCode = $this->params('source-code');
$synchronize = (bool) $this->params('synchronize', 1); $synchronize = (bool) $this->params('synchronize', 1);
$emName = $this->params('em', 'orm_default'); $emName = $this->params('em', 'orm_default');
$verbose = (bool) $this->params('verbose', 0);
$this->setLoggerStream('php://output'); $this->setLoggerStream('php://output', $verbose);
$etablissement = $this->fetchEtablissementByCodeStructure($codeStructure); $etablissement = $this->fetchEtablissementByCodeStructure($codeStructure);
...@@ -254,16 +263,20 @@ class ImportController extends AbstractActionController ...@@ -254,16 +263,20 @@ class ImportController extends AbstractActionController
) . PHP_EOL; ) . PHP_EOL;
} }
/**
* @throws StructureNotFoundException
*/
public function importAllConsoleAction() public function importAllConsoleAction()
{ {
$codeStructure = $this->params('etablissement'); // ex: 'UCN' $codeStructure = $this->params('etablissement'); // ex: 'UCN'
$breakOnServiceNotFound = (bool) $this->params('breakOnServiceNotFound', 1); $breakOnServiceNotFound = (bool) $this->params('breakOnServiceNotFound', 1);
$synchronize = (bool) $this->params('synchronize', 1); $synchronize = (bool) $this->params('synchronize', 1);
$emName = $this->params('em', 'orm_default'); $emName = $this->params('em', 'orm_default');
$verbose = (bool) $this->params('verbose', 0);
$etablissement = $this->fetchEtablissementByCodeStructure($codeStructure); $etablissement = $this->fetchEtablissementByCodeStructure($codeStructure);
$this->setLoggerStream('php://output'); $this->setLoggerStream('php://output', $verbose);
/** @var EntityManager $entityManager */ /** @var EntityManager $entityManager */
$entityManager = $this->getServiceLocator()->get("doctrine.entitymanager.$emName"); $entityManager = $this->getServiceLocator()->get("doctrine.entitymanager.$emName");
...@@ -282,10 +295,11 @@ class ImportController extends AbstractActionController ...@@ -282,10 +295,11 @@ class ImportController extends AbstractActionController
/** /**
* @param string|resource $stream * @param string|resource $stream
* @param bool $verbose
*/ */
private function setLoggerStream($stream) private function setLoggerStream($stream, $verbose = false)
{ {
$filter = new Priority(Logger::INFO); $filter = new Priority($verbose ? Logger::DEBUG : Logger::INFO);
$writer = new Stream($stream); $writer = new Stream($stream);
$writer->addFilter($filter); $writer->addFilter($filter);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment