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

Change subject: Add $wgOpenStackManagerReadOnlyRegions.
......................................................................


Add $wgOpenStackManagerReadOnlyRegions.

This will allow us to disable instance creation in pmtpa
when the migration begins.

Change-Id: If9bd49ad1bccba0998eff2c5f0516596e7468736
---
M OpenStackManager.i18n.php
M OpenStackManager.php
M special/SpecialNovaAddress.php
M special/SpecialNovaInstance.php
4 files changed, 27 insertions(+), 11 deletions(-)

Approvals:
  Andrew Bogott: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/OpenStackManager.i18n.php b/OpenStackManager.i18n.php
index 7e8e7e3..d429986 100644
--- a/OpenStackManager.i18n.php
+++ b/OpenStackManager.i18n.php
@@ -62,6 +62,7 @@
        'openstackmanager-actions' => 'Actions',
        'openstackmanager-notloggedin' => 'Login required',
        'openstackmanager-mustbeloggedin' => 'You must be logged in to perform 
this action.',
+       'openstackmanager-creationdisabled' => 'Creation is disabled',
        'openstackmanager-nonovacred' => 'No Nova credentials found for your 
account.',
        'openstackmanager-nonovacred-admincreate' => 'There were no Nova 
credentials found for your user account.
 Please ask a Nova administrator to create credentials for you.',
@@ -572,6 +573,7 @@
        'openstackmanager-mustbeloggedin' => 'Used as page body in Special:Nova.
 
 The page title for this message is {{msg-mw|Openstackmanager-notloggedin}}.',
+       'openstackmanager-creationdisabled' => 'Displayed in place of a 
"create" link.',
        'openstackmanager-nonovacred' => 'Used as page title in 
[[Special:Nova]].
 
 The page body for this title is:
diff --git a/OpenStackManager.php b/OpenStackManager.php
index 99bb8e5..cc9ba6f 100644
--- a/OpenStackManager.php
+++ b/OpenStackManager.php
@@ -143,6 +143,9 @@
 // A list of regions restricted to a group by right
 $wgOpenStackManagerRestrictedRegions = array();
 
+// A list of regions which are visible yet disabled (e.g. instance creation 
forbidden)
+$wgOpenStackManagerReadOnlyRegions = array();
+
 $dir = dirname( __FILE__ ) . '/';
 
 $wgExtensionMessagesFiles['OpenStackManager'] = $dir . 
'OpenStackManager.i18n.php';
diff --git a/special/SpecialNovaAddress.php b/special/SpecialNovaAddress.php
index bbb372d..6ee0696 100644
--- a/special/SpecialNovaAddress.php
+++ b/special/SpecialNovaAddress.php
@@ -408,6 +408,8 @@
         * @return bool
         */
        function listAddresses() {
+               global $wgOpenStackManagerReadOnlyRegions;
+
                $this->setHeaders();
                $this->getOutput()->addModules( 'ext.openstack.Address' );
                $this->getOutput()->setPagetitle( $this->msg( 
'openstackmanager-addresslist' ) );
@@ -435,18 +437,22 @@
                        $regions = '';
                        $this->userNova->setProject( $projectName );
                        foreach ( $this->userNova->getRegions( 'compute' ) as 
$region ) {
-                               $regionactions = array(
-                                       'projectadmin' => array(
-                                               $this->createActionLink(
-                                                       
'openstackmanager-allocateaddress',
-                                                       array(
-                                                               'action' => 
'allocate',
-                                                               'project' => 
$projectName,
-                                                               'region' => 
$region
+                               if ( in_array( $region, 
$wgOpenStackManagerReadOnlyRegions ) ) {
+                                       $regionactions = array( 'projectadmin' 
=> array( $this->msg( 'openstackmanager-creationdisabled' ) ) );
+                               } else {
+                                       $regionactions = array(
+                                               'projectadmin' => array(
+                                                       $this->createActionLink(
+                                                               
'openstackmanager-allocateaddress',
+                                                               array(
+                                                                       
'action' => 'allocate',
+                                                                       
'project' => $projectName,
+                                                                       
'region' => $region
+                                                               )
                                                        )
                                                )
-                                       )
-                               );
+                                       );
+                               }
                                $addresses = $this->getAddresses( $projectName, 
$region );
                                $regions .= $this->createRegionSection( 
$region, $projectName, $regionactions, $addresses );
                        }
diff --git a/special/SpecialNovaInstance.php b/special/SpecialNovaInstance.php
index dae5e7d..29c3bae 100644
--- a/special/SpecialNovaInstance.php
+++ b/special/SpecialNovaInstance.php
@@ -488,6 +488,7 @@
         * @return void
         */
        function listInstances() {
+               global $wgOpenStackManagerReadOnlyRegions;
                $this->setHeaders();
                $this->getOutput()->addModules( 'ext.openstack.Instance' );
                $this->getOutput()->setPagetitle( $this->msg( 
'openstackmanager-instancelist' ) );
@@ -514,7 +515,11 @@
                        $regions = '';
                        $this->userNova->setProject( $projectName );
                        foreach ( $this->userNova->getRegions( 'compute' ) as 
$region ) {
-                               $regionactions = array( 'projectadmin' => 
array( $this->createActionLink( 'openstackmanager-createinstance', array( 
'action' => 'create', 'project' => $projectName, 'region' => $region ) ) ) );
+                               if ( in_array( $region, 
$wgOpenStackManagerReadOnlyRegions ) ) {
+                                       $regionactions = array( 'projectadmin' 
=> array( $this->msg( 'openstackmanager-creationdisabled' ) ) );
+                               } else {
+                                       $regionactions = array( 'projectadmin' 
=> array( $this->createActionLink( 'openstackmanager-createinstance', array( 
'action' => 'create', 'project' => $projectName, 'region' => $region ) ) ) );
+                               }
                                $instances = $this->getInstances( $projectName, 
$region );
                                $regions .= $this->createRegionSection( 
$region, $projectName, $regionactions, $instances );
                        }

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

Gerrit-MessageType: merged
Gerrit-Change-Id: If9bd49ad1bccba0998eff2c5f0516596e7468736
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/OpenStackManager
Gerrit-Branch: master
Gerrit-Owner: Andrew Bogott <abog...@wikimedia.org>
Gerrit-Reviewer: Andrew Bogott <abog...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to