Ryan Lane has submitted this change and it was merged.

Change subject: Cache the list of project members.
......................................................................


Cache the list of project members.

Change-Id: I59b4ee7d3622a5119d050a32209d83d4fb2bed0b
---
M nova/OpenStackNovaProject.php
1 file changed, 17 insertions(+), 1 deletion(-)

Approvals:
  Ryan Lane: Verified; Looks good to me, approved
  jenkins-bot: Checked



diff --git a/nova/OpenStackNovaProject.php b/nova/OpenStackNovaProject.php
index d31c2d0..e493014 100644
--- a/nova/OpenStackNovaProject.php
+++ b/nova/OpenStackNovaProject.php
@@ -165,7 +165,14 @@
         */
        function getMembers() {
                global $wgAuth;
+               global $wgMemc;
                global $wgOpenStackManagerLDAPDomain;
+
+               $key = wfMemcKey( 'openstackmanager', 'projectmembers', 
$this->projectname );
+               $members = $wgMemc->get( $key );
+               if ( is_array( $members ) ) {
+                       return $members;
+               }
 
                $members = array();
                if ( isset( $this->projectInfo[0]['member'] ) ) {
@@ -179,7 +186,6 @@
                                if ( $searchattr ) {
                                        // We need to look up the search attr 
from the user entry
                                        // this is expensive, but must be done.
-                                       // TODO: memcache this
                                        $userInfo = 
$wgAuth->getUserInfoStateless( $memberdn );
                                        $members[] = 
$userInfo[0][$searchattr][0];
                                } else {
@@ -190,6 +196,8 @@
                                }
                        }
                }
+
+               $wgMemc->set( $key, $members, '3600' );
 
                return $members;
        }
@@ -378,6 +386,10 @@
         */
        function deleteMember( $username ) {
                global $wgAuth;
+               global $wgMemc;
+
+               $key = wfMemcKey( 'openstackmanager', 'projectmembers', 
$this->projectname );
+               $wgMemc->delete( $key );
 
                if ( isset( $this->projectInfo[0]['member'] ) ) {
                        $members = $this->projectInfo[0]['member'];
@@ -480,6 +492,10 @@
         */
        function addMember( $username ) {
                global $wgAuth;
+               global $wgMemc;
+
+               $key = wfMemcKey( 'openstackmanager', 'projectmembers', 
$this->projectname );
+               $wgMemc->delete( $key );
 
                $members = array();
                if ( isset( $this->projectInfo[0]['member'] ) ) {

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I59b4ee7d3622a5119d050a32209d83d4fb2bed0b
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/OpenStackManager
Gerrit-Branch: master
Gerrit-Owner: Andrew Bogott <[email protected]>
Gerrit-Reviewer: Ryan Lane <[email protected]>
Gerrit-Reviewer: jenkins-bot

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

Reply via email to