Andrew Bogott has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/59769


Change subject: Fix gidNumber conflicts for service groups vs. project groups.
......................................................................

Fix gidNumber conflicts for service groups vs. project groups.

Previously I was trying to be clever and allow different projects
to use the same gids for service groups.  My logic wasn't
clever enough, though, and service groups were sometimes
trying to grab gids that were already allocated for project groups.

So... now the code is dumber but should work better.  We just
use a monotonically increasing gid for either service or project
groups, regardless of project scope.

Change-Id: I94019cb2c494ef7fe223c520c7d249de370fb886
---
M nova/OpenStackNovaServiceGroup.php
M nova/OpenStackNovaUser.php
2 files changed, 5 insertions(+), 10 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/OpenStackManager 
refs/changes/69/59769/1

diff --git a/nova/OpenStackNovaServiceGroup.php 
b/nova/OpenStackNovaServiceGroup.php
index c1483aa..3ca5219 100644
--- a/nova/OpenStackNovaServiceGroup.php
+++ b/nova/OpenStackNovaServiceGroup.php
@@ -219,7 +219,7 @@
                $group['objectclass'][] = 'groupofnames';
                $group['cn'] = $groupName;
                $groupdn = 'cn=' . $groupName . ',' . 'ou=groups' . ',' . 
$project->projectDN;
-               $group['gidnumber'] = OpenStackNovaUser::getNextIdNumber( 
$wgAuth, 'gidnumber', $project->projectDN );
+               $group['gidnumber'] = OpenStackNovaUser::getNextIdNumber( 
$wgAuth, 'gidnumber' );
                $group['member'] = array();
                $group['member'][] = $initialUserDN;
                $success = LdapAuthenticationPlugin::ldap_add( 
$wgAuth->ldapconn, $groupdn, $group );
diff --git a/nova/OpenStackNovaUser.php b/nova/OpenStackNovaUser.php
index 1682004..32725bf 100644
--- a/nova/OpenStackNovaUser.php
+++ b/nova/OpenStackNovaUser.php
@@ -372,26 +372,21 @@
         * @param  $projectDN (optional)
         * @return mixed|string
         */
-       static function getNextIdNumber( $auth, $attr, $projectDN = "" ) {
+       static function getNextIdNumber( $auth, $attr ) {
                global $wgOpenStackManagerIdRanges;
 
                $highest = '';
                if ( $attr === 'gidnumber' ) {
                        $filter = "(objectclass=posixgroup)";
                        $base = GROUPDN;
+                       $highest = 
$wgOpenStackManagerIdRanges['service']['gid']['min'];
                } else {
                        $filter = "(objectclass=posixaccount)";
                        $base = USERDN;
-               }
-               if ( $projectDN ) {
-                       # if a project is specified, we're just looking for
-                       # the next ID local to this project.
-                       $basedn = $projectDN;
-                       $highest = 
$wgOpenStackManagerIdRanges['service']['gid']['min'];
-               } else {
-                       $basedn = $auth->getBaseDN( $base );
                        $highest = '500';
                }
+               $basedn = $auth->getBaseDN( $base );
+
                $result = LdapAuthenticationPlugin::ldap_search( 
$auth->ldapconn, $basedn, $filter );
                if ( $result ) {
                        $entries = LdapAuthenticationPlugin::ldap_get_entries( 
$auth->ldapconn, $result );

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I94019cb2c494ef7fe223c520c7d249de370fb886
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/OpenStackManager
Gerrit-Branch: master
Gerrit-Owner: Andrew Bogott <[email protected]>

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

Reply via email to