summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNarayan Desai <desai@mcs.anl.gov>2004-10-19 19:09:17 +0000
committerNarayan Desai <desai@mcs.anl.gov>2004-10-19 19:09:17 +0000
commit14c2f6cb0ff21279e938c2c4d84fdacf1eb61280 (patch)
tree9450eaee982d604380ae9cf499d1675eeb8ded8e
parenta69ba9a9d8d8e3611634dcde9889a9c1155e7d2c (diff)
downloadbcfg2-14c2f6cb0ff21279e938c2c4d84fdacf1eb61280.tar.gz
bcfg2-14c2f6cb0ff21279e938c2c4d84fdacf1eb61280.tar.bz2
bcfg2-14c2f6cb0ff21279e938c2c4d84fdacf1eb61280.zip
fix aggregious pylint problems
update to new api (Logical change 1.101) git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@465 ce84e21b-d406-0410-9b95-82705330c041
-rw-r--r--src/lib/Server/Generators/account.py58
1 files changed, 30 insertions, 28 deletions
diff --git a/src/lib/Server/Generators/account.py b/src/lib/Server/Generators/account.py
index a62fa0eb5..5908f6ca5 100644
--- a/src/lib/Server/Generators/account.py
+++ b/src/lib/Server/Generators/account.py
@@ -1,54 +1,56 @@
#!/usr/bin/env python
+'''This handles authentication setup'''
+__revision__ = '$Revision$'
+
from Bcfg2.Server.Generator import Generator, DirectoryBacked
-from Bcfg2.Server.Types import ConfigFile
class account(Generator):
- __name__ = 'account'
- __version__ = '$Id$'
- __author__ = 'bcfg-dev@mcs.anl.gov'
- __doc__ = '''This module generates account config files, based on an internal data repo:
+ '''This module generates account config files,
+ based on an internal data repo:
static.(passwd|group|limits.conf) -> static entries
dyn.(passwd|group) -> dynamic entries (usually acquired from yp)
useraccess -> users to be granted login access on some hosts
superusers -> users to be granted root privs on all hosts
rootlike -> users to be granted root privs on some hosts
'''
+ __name__ = 'account'
+ __version__ = '$Id$'
+ __author__ = 'bcfg-dev@mcs.anl.gov'
+ __provides__ = {'ConfigFile':{}}
def __setup__(self):
self.repository = DirectoryBacked(self.data)
self.ssh = DirectoryBacked("%s/ssh"%(self.data))
- self.__provides__ = {'ConfigFile':{'/etc/passwd':self.GenFromYP,
- '/etc/group':self.GenFromYP,
- '/etc/security/limits.conf':self.GenLimits,
- '/root/.ssh/authorized_keys':self.GenRootKeys}}
-
- def GenFromYP(self,filename,client):
- fname = filename.split('/')[-1]
- static = self.repository.entries["static.%s"%(fname)].data
- yp = self.repository.entries["dyn.%s"%(fname)].data
- return ConfigFile(filename,"root","root",'0644',static+yp)
-
- def GenLimits(self,filename,client):
- fname = 'limits.conf'
+ self.__provides__['ConfigFile'] = {'/etc/passwd':self.from_yp,
+ '/etc/group':self.from_yp,
+ '/etc/security/limits.conf':self.gen_limits,
+ '/root/.ssh/authorized_keys':self.gen_root_keys}
+
+ def from_yp(self, entry, metadata):
+ fname = entry.attrib['name'].split('/')[-1]
+ entry.text = self.repository.entries["static.%s" % (fname)].data
+ entry.text += self.repository.entries["dyn.%s" % (fname)].data
+ entry.attrib.update({'owner':'root', 'group':'root', 'perms':'0644'})
+
+ def gen_limits(self, entry, metadata):
static = self.repository.entries["static.limits.conf"].data
superusers = self.repository.entries["superusers"].data.split()
useraccess = self.repository.entries["useraccess"].data
- users = [x[0] for x in useraccess if x[1] == client]
-
- data = static + "".join(map(lambda x:"%s hard maxlogins 1024\n"%x, superusers + users))
-
+ users = [x[0] for x in useraccess if x[1] == metadata.hostname]
+ entry.attrib.upate({'owner':'root', 'group':'root', 'perms':'0600'})
+ entry.text = static + "".join(["%s hard maxlogins 1024\n" % x for x in superusers + users])
if "*" not in users:
- data += "* hard maxlogins 0\n"
-
- return ConfigFile(filename,"root","root",'0644',data)
+ entry.text += "* hard maxlogins 0\n"
- def GenRootKeys(self,filename,client):
+ def gen_root_keys(self, entry, metadata):
+ data = ''
su = self.repository.entries['superusers'].data.split()
rl = self.repository.entries['rootlike'].data.split()
- su += [x.split(':')[0] for x in rl if x.split(':')[1] == client]
+ su += [x.split(':')[0] for x in rl if x.split(':')[1] == metadata.hostname]
data = ''
for user in su:
if self.ssh.entries.has_key(user):
data += self.ssh.entries[user].data
- return ConfigFile(filename,'root','root','0600',data)
+ entry.attrib.update({'owner':'root', 'group':'root', 'perms':'0600'})
+ entry.text = data