You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@whimsical.apache.org by se...@apache.org on 2018/07/10 22:35:39 UTC

[whimsy] branch master updated: Get access to ids only

This is an automated email from the ASF dual-hosted git repository.

sebb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/whimsy.git


The following commit(s) were added to refs/heads/master by this push:
     new 1d50b14  Get access to ids only
1d50b14 is described below

commit 1d50b14f45b98addced6cd4f71b1f3302c58afab
Author: Sebb <se...@apache.org>
AuthorDate: Tue Jul 10 23:35:38 2018 +0100

    Get access to ids only
---
 lib/whimsy/asf/ldap.rb | 96 +++++++++++++++++++++++++++++++++++++-------------
 1 file changed, 72 insertions(+), 24 deletions(-)

diff --git a/lib/whimsy/asf/ldap.rb b/lib/whimsy/asf/ldap.rb
index a8b7870..cd1a7c8 100644
--- a/lib/whimsy/asf/ldap.rb
+++ b/lib/whimsy/asf/ldap.rb
@@ -981,7 +981,7 @@ module ASF
       @members = WeakRef.new(members)
     end
 
-    # return a list of ASF::People who are memers of this group
+    # return a list of ASF::People who are members of this group
     def members
       members = weakref(:members) do
         ASF.search_one(base, "cn=#{name}", 'memberUid').flatten
@@ -990,6 +990,13 @@ module ASF
       members.map {|uid| Person.find(uid)}
     end
 
+    # return a list of ids who are members of this group
+    def memberids
+      members = weakref(:members) do
+        ASF.search_one(base, "cn=#{name}", 'memberUid').flatten
+      end
+    end
+
     # Designated Name from LDAP
     def dn
       @dn ||= ASF.search_one(base, "cn=#{name}", 'dn').first.first
@@ -1119,6 +1126,14 @@ module ASF
       members.map {|uid| Person.find uid[/uid=(.*?),/,1]}
     end
 
+    # list of member ids in the project
+    def memberids
+      members = weakref(:members) do
+        ASF.search_one(base, "cn=#{name}", 'member').flatten
+      end    
+      members.map {|uid| uid[/uid=(.*?),/,1]}
+    end
+
     # list of owners on this project.  Stored in LDAP as a <tt>owners</tt>
     # attribute.
     def owners
@@ -1129,6 +1144,15 @@ module ASF
       owners.map {|uid| Person.find uid[/uid=(.*?),/,1]}
     end
 
+    # list of owner ids in the project
+    def ownerids
+      owners = weakref(:owners) do
+        ASF.search_one(base, "cn=#{name}", 'owner').flatten
+      end
+      owners.map {|uid| uid[/uid=(.*?),/,1]}
+    end
+
+    
     # remove people from a project as owners and members in LDAP
     def remove(people)
       remove_owners(people)
@@ -1237,12 +1261,32 @@ module ASF
       members.map {|uid| Person.find uid[/uid=(.*?),/,1]}
     end
 
+    # List of ids in the member attribute for this committee
+    def memberids
+      members = weakref(:members) do
+        ASF.search_one(base, "cn=#{name}", 'member').flatten
+      end
+    
+      members.map {|uid| uid[/uid=(.*?),/,1]}
+    end
+
     # temp list of projects that have moved over to new project LDAP schema
     GUINEAPIGS = %w(incubator whimsy jmeter axis mynewt atlas accumulo
       madlib streams fluo impala)
 
+    # is the current PMC a guineapig?
+    def isGuineaPig?
+      GUINEAPIGS.include? name
+    end
+
+    # is the PMC a guineapig?
+    def self.isGuineaPig? (name)
+      GUINEAPIGS.include? name
+    end
+
     # List of owners for this committee, i.e. people who are members of the
     # committee and have update access.  Data is obtained from LDAP.
+    # Takes info from Project for GUINEAPIGS else the committee member roster
     def owners
       if GUINEAPIGS.include? name
         ASF::Project.find(name).owners
@@ -1251,8 +1295,19 @@ module ASF
       end
     end
 
+    # List of owner ids for this committee
+    # Takes info from Project for GUINEAPIGS else the committee member roster
+    def ownerids
+      if GUINEAPIGS.include? name
+        ASF::Project.find(name).ownerids
+      else
+        memberids
+      end
+    end
+
     # List of committers for this committee.  Data is obtained from LDAP.  This
     # data is generally stored in an attribute named <tt>member</tt>.
+    # Takes info from Project for GUINEAPIGS else the Group
     def committers
       if GUINEAPIGS.include? name
         ASF::Project.find(name).members
@@ -1261,6 +1316,16 @@ module ASF
       end
     end
 
+    # List of committer ids for this committee
+    # Takes info from Project for GUINEAPIGS else the Group
+    def committerids
+      if GUINEAPIGS.include? name
+        ASF::Project.find(name).memberids
+      else
+        ASF::Group.find(name).memberids
+      end
+    end
+
     # remove people as owners of a project in LDAP
     def remove_owners(people)
       if GUINEAPIGS.include? name
@@ -1472,28 +1537,11 @@ module ASF
 end
 
 if __FILE__ == $0
-  module ASF
-    module LDAP
-      def self.getHOSTS # :nodoc:
-        RO_HOSTS
-      end
-    end
-  end
-  hosts=ASF::LDAP.getHOSTS().sort
-  puppet=ASF::LDAP.puppet_ldapservers().sort
-  if hosts == puppet
-    puts("LDAP HOSTS array is up to date with the puppet list")
-  else
-    puts("LDAP HOSTS array does not agree with the puppet list")
-    hostsonly=hosts-puppet
-    if hostsonly.length > 0
-      print("In HOSTS but not in puppet:")
-      puts(hostsonly)
-    end
-    puppetonly=puppet-hosts
-    if puppetonly.length > 0
-      print("In puppet but not in HOSTS: ")
-      puts(puppetonly)
-    end
+  $LOAD_PATH.unshift '/srv/whimsy/lib'
+  require 'whimsy/asf/config'
+  %w{attic jmeter httpd}.each do |w|
+    print w, ' '
+    print ASF::Committee[w].isGuineaPig?,' '
+    puts ASF::Committee.isGuineaPig?(w)   
   end
 end