From 68620c977d8fc0e0f42a9b370ff757cd9f60c3f2 Mon Sep 17 00:00:00 2001 From: "a.croix" <croix.alexandre@gmail.com> Date: Wed, 19 May 2021 17:32:46 +0200 Subject: [PATCH] Add progression track during evidences collection --- app/Jobs/WowaJob.php | 11 ++++++++--- app/Log.php | 11 +++++++++-- app/Logging/LogFormatter.php | 4 ++-- app/Wowa.php | 4 +++- .../2021_05_06_075557_create_logs_table.php | 2 +- 5 files changed, 23 insertions(+), 9 deletions(-) diff --git a/app/Jobs/WowaJob.php b/app/Jobs/WowaJob.php index 576ed6e..2b095d2 100644 --- a/app/Jobs/WowaJob.php +++ b/app/Jobs/WowaJob.php @@ -66,12 +66,15 @@ class WowaJob implements ShouldQueue $processor = new LogProcessor(); $processor->setJobId($this->wowa->id); $logg->pushProcessor($processor); - $logg->info("Begin find all related evidences"); try { - Feedback::chunk(100, function ($feedbacks) { + $cnt = 0; + $this->wowa->status = Wowa::STATE_COLLECTION; + $this->wowa->save(); + Feedback::chunk(100, function ($feedbacks) use ($cnt) { foreach ($feedbacks as $feed) { + $cnt++; $evidence_references = $feed->report()->references; $this->is_true_alert[] = $feed->is_true_alert; $scores_references = []; @@ -79,6 +82,7 @@ class WowaJob implements ShouldQueue $scores_references[] = Mark::get()->findEvidenceById($evidence_reference)->score; } $this->evidences[] = $scores_references; + \Log::info($cnt . " | Evidences collection"); } }); } catch (\Exception $e) { @@ -86,7 +90,6 @@ class WowaJob implements ShouldQueue $logg->error("Error during retrieving evidences"); $this->wowa->save(); } - $training_prameters = new TrainerParameters( $logg, $this->wowa->population, @@ -97,6 +100,8 @@ class WowaJob implements ShouldQueue TrainerParameters::INITIAL_POPULATION_GENERATION_RANDOM ); $trainer = new Trainer($training_prameters, new SolutionDistance(count($this->evidences[0]))); + $this->wowa->status = Wowa::STATE_RUNNING; + $this->wowa->save(); try { $solution = $trainer->run($this->evidences, $this->is_true_alert); } catch (\Exception $e) { diff --git a/app/Log.php b/app/Log.php index 87796c6..226b4bb 100644 --- a/app/Log.php +++ b/app/Log.php @@ -18,8 +18,15 @@ class Log extends Model if (!is_object($logs)) { return "Calculation in progress..."; } - $generation = $logs->generation + 1; + if ($wowa->status == Wowa::STATE_COLLECTION) { + $result = 'Evidences collection : '; + } elseif ($wowa->status == Wowa::STATE_RUNNING) { + $result = 'Training : '; + } else { + $result = 'Error'; + } + $progression = $logs->progression + 1; $generation_number = $wowa->generation_number; - return ($generation / $generation_number) * 100; + return $result . (($progression / $generation_number) * 100); } } diff --git a/app/Logging/LogFormatter.php b/app/Logging/LogFormatter.php index e595b3f..e37fcde 100644 --- a/app/Logging/LogFormatter.php +++ b/app/Logging/LogFormatter.php @@ -23,8 +23,8 @@ class LogFormatter extends NormalizerFormatter $el = $record['extra']; $el['level'] = strtolower($record['level_name']); $el['message'] = $record['message']; - $generation = substr($record['message'], 0, strpos($record['message'], ' | Fitness')); - $el['generation'] = (int)$generation; + $progression = substr($record['message'], 0, strpos($record['message'], ' | ')); + $el['progression'] = (int)$progression; return $el; } diff --git a/app/Wowa.php b/app/Wowa.php index 82ab848..9bf2f2d 100644 --- a/app/Wowa.php +++ b/app/Wowa.php @@ -8,6 +8,7 @@ class Wowa extends Model { const STATE_CREATED = "CREATED"; const STATE_QUEUED = "QUEUED"; + const STATE_COLLECTION = "DATA COLLECTION"; const STATE_RUNNING = "RUNNING"; const STATE_SUCCESS = "SUCCESS"; const STATE_FAILED = "FAILED"; @@ -15,7 +16,8 @@ class Wowa extends Model public static $status_classes = [ self::STATE_SUCCESS => "btn-success", self::STATE_FAILED => "btn-danger", - self::STATE_RUNNING => "btn-warning" + self::STATE_RUNNING => "btn-warning", + self::STATE_COLLECTION => "btn-warning" ]; diff --git a/database/migrations/2021_05_06_075557_create_logs_table.php b/database/migrations/2021_05_06_075557_create_logs_table.php index 9736dea..9a44113 100644 --- a/database/migrations/2021_05_06_075557_create_logs_table.php +++ b/database/migrations/2021_05_06_075557_create_logs_table.php @@ -17,7 +17,7 @@ class CreateLogsTable extends Migration $table->id(); $table->timestamps(); $table->enum('level', ['emergency', 'alert', 'critical', 'error', 'warning', 'notice', 'info', 'debug']); - $table->integer('generation')->nullable(); + $table->integer('progression')->nullable(); $table->text('message')->nullable(); $table->text('user_id')->nullable(); $table->integer('job_id')->nullable(); -- GitLab