Catrope has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/327302 )

Change subject: ApiFlow: Determine write mode on a per-submodule basis
......................................................................

ApiFlow: Determine write mode on a per-submodule basis

We are getting lots of warnings like
    [DBPerformance] Expectation (writes <= 0) by 
ApiMain::setRequestExpectations not met
in production, because some of ApiFlow's submodules are read-only
modules that allow GET, and others are write modules that require POST.
ApiFlow ensures internally that POST is required for write modules,
but ApiMain doesn't know that when setting its expectations.

To fix this, make the top-level module's isWriteMode() pass through
to the submodule's isWriteMode(). ApiQuery uses a similar trick
for isReadMode().

Bug: T120543
Change-Id: I577b5aa6f314808494e4090a5454b97330c0e520
---
M includes/Api/ApiFlow.php
1 file changed, 8 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Flow 
refs/changes/02/327302/1

diff --git a/includes/Api/ApiFlow.php b/includes/Api/ApiFlow.php
index 282c2c9..6a10348 100644
--- a/includes/Api/ApiFlow.php
+++ b/includes/Api/ApiFlow.php
@@ -141,6 +141,14 @@
                );
        }
 
+       public function isWriteMode() {
+               // We can't use extractRequestParams() here because 
getHelpFlags() calls this function,
+               // and we'd error out because the submodule parameter isn't set.
+               $moduleName = $this->getMain()->getVal( 'submodule' );
+               $module = $this->moduleManager->getModule( $moduleName, 
'submodule' );
+               return $module ? $module->isWriteMode() : false;
+       }
+
        public function getHelpUrls() {
                return array(
                        'https://www.mediawiki.org/wiki/Extension:Flow/API',

-- 
To view, visit https://gerrit.wikimedia.org/r/327302
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I577b5aa6f314808494e4090a5454b97330c0e520
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Flow
Gerrit-Branch: master
Gerrit-Owner: Catrope <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to