jenkins-bot has submitted this change and it was merged.

Change subject: Don't cache the service catalog for nearly as long.
......................................................................


Don't cache the service catalog for nearly as long.

Default behavior is to cache the OpenStack service catalog for
the lifetime of a user login.  That makes it pretty hard for us
to move services.

This patch changes the lifetime to 1 hour, and also adds logic
to detect an expired catalog (which was previously ignored.)

Task: T109653
Change-Id: If8d27bce5fef89633448bc66fd2a4f19ed5a3f2d
---
M nova/OpenStackNovaController.php
1 file changed, 8 insertions(+), 2 deletions(-)

Approvals:
  Alex Monk: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/nova/OpenStackNovaController.php b/nova/OpenStackNovaController.php
index 1831dae..a575a4e 100644
--- a/nova/OpenStackNovaController.php
+++ b/nova/OpenStackNovaController.php
@@ -776,7 +776,7 @@
                $expires = strtotime( $this->_get_property( 
$user->access->token, 'expires' ) );
                $wgMemc->set( $projectkey, $token, $expires );
                $key = wfMemcKey( 'openstackmanager', 'serviceCatalog-' . 
$project, $this->username );
-               $wgMemc->set( $key, json_encode( $user->access->serviceCatalog 
), $expires );
+               $wgMemc->set( $key, json_encode( $user->access->serviceCatalog 
), 3600 );
 
                return $token;
        }
@@ -785,7 +785,13 @@
                global $wgMemc;
 
                $key = wfMemcKey( 'openstackmanager', 'serviceCatalog-' . 
$this->project, $this->username );
-               $serviceCatalog = json_decode( $wgMemc->get( $key ) );
+               $catalogJson = $wgMemc->get( $key );
+               if ( !$catalogJson ) {
+                       # Catalog expired; refresh
+                       $this->getProjectToken( $this->project );
+                       $catalogJson = $wgMemc->get( $key );
+               }
+               $serviceCatalog = json_decode( $catalogJson );
                $endpoints = array();
                if ( $serviceCatalog ) {
                        foreach ( $serviceCatalog as $entry ) {

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

Gerrit-MessageType: merged
Gerrit-Change-Id: If8d27bce5fef89633448bc66fd2a4f19ed5a3f2d
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/extensions/OpenStackManager
Gerrit-Branch: master
Gerrit-Owner: Andrew Bogott <[email protected]>
Gerrit-Reviewer: Alex Monk <[email protected]>
Gerrit-Reviewer: Rush <[email protected]>
Gerrit-Reviewer: Yuvipanda <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to