Ladsgroup has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/401815 )
Change subject: Add models when ores_model is empty
......................................................................
Add models when ores_model is empty
This is not very clean but it works in my localhost
Will refactor this when I'm done with ModelStorage service
Bug: T184127
Change-Id: I50be5e431db41d8ba942bb362799578316ea058c
---
M includes/Storage/SqlModelLookup.php
1 file changed, 27 insertions(+), 0 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/ORES
refs/changes/15/401815/1
diff --git a/includes/Storage/SqlModelLookup.php
b/includes/Storage/SqlModelLookup.php
index d17f0e3..e18e713 100644
--- a/includes/Storage/SqlModelLookup.php
+++ b/includes/Storage/SqlModelLookup.php
@@ -16,7 +16,12 @@
namespace ORES\Storage;
+use DeferredUpdates;
use InvalidArgumentException;
+use MediaWiki\MediaWikiServices;
+use ORES\Api;
+use ORES\Scoring;
+use RuntimeException;
use Wikimedia\Rdbms\LoadBalancer;
class SqlModelLookup implements ModelLookup {
@@ -85,9 +90,31 @@
'version' => $row->oresm_version
];
}
+ if ( count( $this->modelData ) === 0 ) {
+ DeferredUpdates::addCallableUpdate( function ()
{
+ self::fetchModelsFromApi();
+ } );
+ }
}
return $this->modelData;
}
+ public static function fetchModelsFromApi() {
+ $wikiId = Api::getWikiID();
+ $api = new Api();
+ $mssg = 'Bad response from ORES when requesting models: ';
+ $modelsData = $api->request( [] );
+ if ( !isset( $modelsData[$wikiId] ) || empty(
$modelsData[$wikiId]['models'] ) ) {
+ throw new RuntimeException( $mssg . json_encode(
$modelsData ) );
+ }
+ foreach ( $modelsData[$wikiId]['models'] as $model =>
$modelData ) {
+ if ( !isset( $modelData['version'] ) ) {
+ throw new RuntimeException( $mssg .
json_encode( $modelData ) );
+ }
+ Scoring::instance()->updateModelVersion( $model,
$modelData['version'] );
+
MediaWikiServices::getInstance()->getDBLoadBalancerFactory()->waitForReplication();
+ }
+ }
+
}
--
To view, visit https://gerrit.wikimedia.org/r/401815
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I50be5e431db41d8ba942bb362799578316ea058c
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/ORES
Gerrit-Branch: master
Gerrit-Owner: Ladsgroup <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits