summaryrefslogtreecommitdiff
path: root/cloudinit/distros/__init__.py
diff options
context:
space:
mode:
authorScott Moser <smoser@ubuntu.com>2012-08-22 21:20:34 -0400
committerScott Moser <smoser@ubuntu.com>2012-08-22 21:20:34 -0400
commit2de30c15e706a9610c19979886f13addecf7ea1b (patch)
treefc0dc5441f5a280ca9b73f16e7809bde62acf00c /cloudinit/distros/__init__.py
parentd59ab509f6482b8b3af4fd9f2728ad1209d5b2e2 (diff)
downloadvyos-cloud-init-2de30c15e706a9610c19979886f13addecf7ea1b.tar.gz
vyos-cloud-init-2de30c15e706a9610c19979886f13addecf7ea1b.zip
fix issues from 'make pylint'
In an effort to pylint errors about NonImlementedError and add_default_user, I moved this method to distro and genericized it. Now, assuming a sane 'create_user' for the distro, this should work. Also: * removed the unused set_configured_user method
Diffstat (limited to 'cloudinit/distros/__init__.py')
-rw-r--r--cloudinit/distros/__init__.py28
1 files changed, 21 insertions, 7 deletions
diff --git a/cloudinit/distros/__init__.py b/cloudinit/distros/__init__.py
index 1f46c5aa..12a0d9b4 100644
--- a/cloudinit/distros/__init__.py
+++ b/cloudinit/distros/__init__.py
@@ -46,16 +46,33 @@ LOG = logging.getLogger(__name__)
class Distro(object):
__metaclass__ = abc.ABCMeta
+ default_user = None
def __init__(self, name, cfg, paths):
self._paths = paths
self._cfg = cfg
self.name = name
- self.default_user = None
@abc.abstractmethod
def add_default_user(self):
- raise NotImplementedError()
+ # Adds the distro user using the rules:
+ # - Password is same as username but is locked
+ # - nopasswd sudo access
+
+ user = self.get_default_user()
+ if not user:
+ raise NotImplementedError("No Default user")
+
+ self.create_user(user,
+ plain_text_passwd=user,
+ home="/home/%s" % user,
+ shell="/bin/bash",
+ lockpasswd=True,
+ gecos="%s%s" % (user[0:1].upper(),user[1:]),
+ sudo="ALL=(ALL) NOPASSWD:ALL")
+
+ LOG.info("Added default '%s' user with passwordless sudo", user)
+
@abc.abstractmethod
def install_packages(self, pkglist):
@@ -186,11 +203,8 @@ class Distro(object):
except KeyError:
return False
- def set_configured_user(self, name):
- self.default_user = name
-
def get_default_user(self):
- return None
+ return self.default_user
def create_user(self, name, **kwargs):
"""
@@ -326,7 +340,7 @@ class Distro(object):
def isgroup(self, name):
try:
- if grp.getgrpnam(name):
+ if grp.getgrnam(name):
return True
except:
return False