Rename nss info plugin to match format of info+name
authorRob Crittenden <rcritten@redhat.com>
Tue, 3 Mar 2015 04:02:03 +0000 (23:02 -0500)
committerPatrick Uiterwijk <puiterwijk@redhat.com>
Thu, 9 Apr 2015 21:46:31 +0000 (23:46 +0200)
This also eliminates a namespace collision with python-nss

https://fedorahosted.org/ipsilon/ticket/104

Signed-off-by: Rob Crittenden <rcritten@redhat.com>
Reviewed-by: Patrick Uiterwijk <puiterwijk@redhat.com>
contrib/fedora/ipsilon.spec
ipsilon/info/infonss.py [new file with mode: 0644]
ipsilon/info/nss.py [deleted file]

index 577d6ed..0c1f1ca 100644 (file)
@@ -244,7 +244,7 @@ fi
 %dir %{python2_sitelib}/ipsilon/info
 %{python2_sitelib}/ipsilon/info/__init__*
 %{python2_sitelib}/ipsilon/info/common*
 %dir %{python2_sitelib}/ipsilon/info
 %{python2_sitelib}/ipsilon/info/__init__*
 %{python2_sitelib}/ipsilon/info/common*
-%{python2_sitelib}/ipsilon/info/nss*
+%{python2_sitelib}/ipsilon/info/infonss*
 %dir %{python2_sitelib}/ipsilon/providers
 %{python2_sitelib}/ipsilon/providers/__init__*
 %{python2_sitelib}/ipsilon/providers/common*
 %dir %{python2_sitelib}/ipsilon/providers
 %{python2_sitelib}/ipsilon/providers/__init__*
 %{python2_sitelib}/ipsilon/providers/common*
diff --git a/ipsilon/info/infonss.py b/ipsilon/info/infonss.py
new file mode 100644 (file)
index 0000000..0669e95
--- /dev/null
@@ -0,0 +1,96 @@
+# Copyright (C) 2014 Ipsilon Project Contributors
+#
+# See the file named COPYING for the project license
+
+from ipsilon.info.common import InfoProviderBase
+from ipsilon.info.common import InfoProviderInstaller
+from ipsilon.util.plugin import PluginObject
+from ipsilon.util.policy import Policy
+import grp
+import pwd
+import os
+
+
+posix_map = [
+    ['gecos', 'fullname']
+]
+
+
+class InfoProvider(InfoProviderBase):
+
+    def __init__(self, *pargs):
+        super(InfoProvider, self).__init__(*pargs)
+        self.mapper = Policy(posix_map)
+        self.name = 'nss'
+        self.new_config(self.name)
+
+    def _get_posix_user(self, user):
+        p = pwd.getpwnam(user)
+        return {'username': p.pw_name, 'uidNumber': p.pw_uid,
+                'gidNumber': p.pw_gid, 'gecos': p.pw_gecos,
+                'homeDirectory': p.pw_dir, 'loginShell': p.pw_shell}
+
+    def _get_posix_groups(self, user, group):
+        groups = set()
+        getgrouplist = getattr(os, 'getgrouplist', None)
+        if getgrouplist:
+            ids = getgrouplist(user, group)
+            for i in ids:
+                try:
+                    g = grp.getgrgid(i)
+                    groups.add(g.gr_name)
+                except KeyError:
+                    pass
+
+        else:
+            g = grp.getgrgid(group)
+            groups.add(g.gr_name)
+
+            allg = grp.getgrall()
+            for g in allg:
+                if user in g.gr_mem:
+                    groups.add(g.gr_name)
+
+        return list(groups)
+
+    def get_user_attrs(self, user):
+        reply = dict()
+        try:
+            posix_user = self._get_posix_user(user)
+            userattrs, extras = self.mapper.map_attributes(posix_user)
+            groups = self._get_posix_groups(posix_user['username'],
+                                            posix_user['gidNumber'])
+            reply = userattrs
+            reply['_groups'] = groups
+            reply['_extras'] = {'posix': extras}
+
+        except KeyError:
+            pass
+
+        return reply
+
+
+class Installer(InfoProviderInstaller):
+
+    def __init__(self, *pargs):
+        super(Installer, self).__init__()
+        self.name = 'nss'
+        self.pargs = pargs
+
+    def install_args(self, group):
+        group.add_argument('--info-nss', choices=['yes', 'no'], default='no',
+                           help='Use passwd data to populate user attrs')
+
+    def configure(self, opts):
+        if opts['info_nss'] != 'yes':
+            return
+
+        # Add configuration data to database
+        po = PluginObject(*self.pargs)
+        po.name = 'nss'
+        po.wipe_data()
+        po.wipe_config_values()
+
+        # Update global config to add info plugin
+        po.is_enabled = True
+        po.save_enabled_state()
diff --git a/ipsilon/info/nss.py b/ipsilon/info/nss.py
deleted file mode 100644 (file)
index 0669e95..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-# Copyright (C) 2014 Ipsilon Project Contributors
-#
-# See the file named COPYING for the project license
-
-from ipsilon.info.common import InfoProviderBase
-from ipsilon.info.common import InfoProviderInstaller
-from ipsilon.util.plugin import PluginObject
-from ipsilon.util.policy import Policy
-import grp
-import pwd
-import os
-
-
-posix_map = [
-    ['gecos', 'fullname']
-]
-
-
-class InfoProvider(InfoProviderBase):
-
-    def __init__(self, *pargs):
-        super(InfoProvider, self).__init__(*pargs)
-        self.mapper = Policy(posix_map)
-        self.name = 'nss'
-        self.new_config(self.name)
-
-    def _get_posix_user(self, user):
-        p = pwd.getpwnam(user)
-        return {'username': p.pw_name, 'uidNumber': p.pw_uid,
-                'gidNumber': p.pw_gid, 'gecos': p.pw_gecos,
-                'homeDirectory': p.pw_dir, 'loginShell': p.pw_shell}
-
-    def _get_posix_groups(self, user, group):
-        groups = set()
-        getgrouplist = getattr(os, 'getgrouplist', None)
-        if getgrouplist:
-            ids = getgrouplist(user, group)
-            for i in ids:
-                try:
-                    g = grp.getgrgid(i)
-                    groups.add(g.gr_name)
-                except KeyError:
-                    pass
-
-        else:
-            g = grp.getgrgid(group)
-            groups.add(g.gr_name)
-
-            allg = grp.getgrall()
-            for g in allg:
-                if user in g.gr_mem:
-                    groups.add(g.gr_name)
-
-        return list(groups)
-
-    def get_user_attrs(self, user):
-        reply = dict()
-        try:
-            posix_user = self._get_posix_user(user)
-            userattrs, extras = self.mapper.map_attributes(posix_user)
-            groups = self._get_posix_groups(posix_user['username'],
-                                            posix_user['gidNumber'])
-            reply = userattrs
-            reply['_groups'] = groups
-            reply['_extras'] = {'posix': extras}
-
-        except KeyError:
-            pass
-
-        return reply
-
-
-class Installer(InfoProviderInstaller):
-
-    def __init__(self, *pargs):
-        super(Installer, self).__init__()
-        self.name = 'nss'
-        self.pargs = pargs
-
-    def install_args(self, group):
-        group.add_argument('--info-nss', choices=['yes', 'no'], default='no',
-                           help='Use passwd data to populate user attrs')
-
-    def configure(self, opts):
-        if opts['info_nss'] != 'yes':
-            return
-
-        # Add configuration data to database
-        po = PluginObject(*self.pargs)
-        po.name = 'nss'
-        po.wipe_data()
-        po.wipe_config_values()
-
-        # Update global config to add info plugin
-        po.is_enabled = True
-        po.save_enabled_state()