https://www.mediawiki.org/wiki/Special:Code/MediaWiki/114757

Revision: 114757
Author:   laner
Date:     2012-04-06 01:17:05 +0000 (Fri, 06 Apr 2012)
Log Message:
-----------
Add a boolean to check whether a group is global or not. Fixes bug 34052.

Modified Paths:
--------------
    trunk/extensions/OpenStackManager/OpenStackManager.php
    trunk/extensions/OpenStackManager/OpenStackNovaPuppetGroup.php
    trunk/extensions/OpenStackManager/openstack.sql

Added Paths:
-----------
    
trunk/extensions/OpenStackManager/schema-changes/openstack_group_is_global_field.sql

Modified: trunk/extensions/OpenStackManager/OpenStackManager.php
===================================================================
--- trunk/extensions/OpenStackManager/OpenStackManager.php      2012-04-06 
01:02:35 UTC (rev 114756)
+++ trunk/extensions/OpenStackManager/OpenStackManager.php      2012-04-06 
01:17:05 UTC (rev 114757)
@@ -177,6 +177,7 @@
                $updater->addExtensionTable( 'openstack_puppet_vars', 
"$base/openstack.sql" );
                $updater->addExtensionTable( 'openstack_puppet_classes', 
"$base/openstack.sql" );
                $updater->addExtensionUpdate( array( 'addField', 
'openstack_puppet_groups', 'group_project', 
"$base/schema-changes/openstack_project_field.sql", true ) );
+               $updater->addExtensionUpdate( array( 'addField', 
'openstack_puppet_groups', 'group_is_global', 
"$base/schema-changes/openstack_group_is_global_field.sql", true ) );
                break;
        }
        return true;

Modified: trunk/extensions/OpenStackManager/OpenStackNovaPuppetGroup.php
===================================================================
--- trunk/extensions/OpenStackManager/OpenStackNovaPuppetGroup.php      
2012-04-06 01:02:35 UTC (rev 114756)
+++ trunk/extensions/OpenStackManager/OpenStackNovaPuppetGroup.php      
2012-04-06 01:17:05 UTC (rev 114757)
@@ -74,7 +74,8 @@
                        array(  'group_id',
                                'group_name',
                                'group_position',
-                               'group_project' ),
+                               'group_project',
+                               'group_is_global' ),
                        array(  'group_name' => $name,
                                'group_project' => $project ),
                        __METHOD__ );
@@ -98,7 +99,8 @@
                                'group_id',
                                'group_name',
                                'group_position',
-                               'group_project' ),
+                               'group_project',
+                               'group_is_global' ),
                        array( 'group_id' => intval( $id ) ),
                        __METHOD__ );
 
@@ -167,14 +169,15 @@
                if ( $project ) {
                        $condition = 'group_project = ' . $dbr->addQuotes( 
$project );
                } else {
-                       $condition = 'group_project is NULL';
+                       $condition = 'group_is_global = true';
                }
                $rows = $dbr->select(
                        'openstack_puppet_groups',
                        array(  'group_id',
                                'group_name',
                                'group_position',
-                               'group_project', ),
+                               'group_project',
+                               'group_is_global' ),
                        $condition,
                        __METHOD__,
                        array( 'ORDER BY' => 'group_position ASC' ) // FIXME: 
Unindexed
@@ -245,13 +248,19 @@
         * @param $position int
         * @return bool
         */
-       public static function addGroup( $name, $position, $project=null ) {
+       public static function addGroup( $name, $position, $project='' ) {
+               if ( $project ) {
+                       $group_is_global = true;
+               } else {
+                       $group_is_global = false;
+               }
                $dbw = wfGetDB( DB_MASTER );
                return $dbw->insert(
                        'openstack_puppet_groups',
                        array(  'group_name' => $name,
                                'group_position' => $position,
                                'group_project' => $project,
+                               'group_is_global' => $group_is_global,
                        ),
                        __METHOD__
                );

Modified: trunk/extensions/OpenStackManager/openstack.sql
===================================================================
--- trunk/extensions/OpenStackManager/openstack.sql     2012-04-06 01:02:35 UTC 
(rev 114756)
+++ trunk/extensions/OpenStackManager/openstack.sql     2012-04-06 01:17:05 UTC 
(rev 114757)
@@ -7,11 +7,14 @@
        group_name varchar(255) binary not null,
 
        -- Position of group when displayed
-       group_position int not null
+       group_position int not null,
 
        -- OpenStack project to which this group belongs, if any
        group_project varchar(255) binary,
 
+       -- OpenStack project to which this group belongs, if any
+       group_is_global boolean not null,
+
 ) /*$wgDBTableOptions*/;
 
 CREATE INDEX /*i*/group_name on /*_*/openstack_puppet_groups (group_name);

Added: 
trunk/extensions/OpenStackManager/schema-changes/openstack_group_is_global_field.sql
===================================================================
--- 
trunk/extensions/OpenStackManager/schema-changes/openstack_group_is_global_field.sql
                                (rev 0)
+++ 
trunk/extensions/OpenStackManager/schema-changes/openstack_group_is_global_field.sql
        2012-04-06 01:17:05 UTC (rev 114757)
@@ -0,0 +1,2 @@
+ALTER TABLE /*_*/openstack_puppet_groups
+       ADD COLUMN group_is_global boolean not null default false;


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

Reply via email to