diff options
author | Scott Moser <smoser@ubuntu.com> | 2012-08-22 21:20:34 -0400 |
---|---|---|
committer | Scott Moser <smoser@ubuntu.com> | 2012-08-22 21:20:34 -0400 |
commit | 2de30c15e706a9610c19979886f13addecf7ea1b (patch) | |
tree | fc0dc5441f5a280ca9b73f16e7809bde62acf00c /cloudinit/distros | |
parent | d59ab509f6482b8b3af4fd9f2728ad1209d5b2e2 (diff) | |
download | vyos-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')
-rw-r--r-- | cloudinit/distros/__init__.py | 28 | ||||
-rw-r--r-- | cloudinit/distros/ubuntu.py | 32 |
2 files changed, 23 insertions, 37 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 diff --git a/cloudinit/distros/ubuntu.py b/cloudinit/distros/ubuntu.py index a6d665e0..17584f15 100644 --- a/cloudinit/distros/ubuntu.py +++ b/cloudinit/distros/ubuntu.py @@ -21,48 +21,20 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. -from cloudinit import distros from cloudinit.distros import debian -from cloudinit import helpers from cloudinit import log as logging -from cloudinit.settings import PER_INSTANCE from cloudinit import util -import hashlib -import pwd - LOG = logging.getLogger(__name__) class Distro(debian.Distro): distro_name = 'ubuntu' - __default_user_name__ = 'ubuntu' + default_user = 'ubuntu' def __init__(self, name, cfg, paths): - distros.Distro.__init__(self, name, cfg, paths) - # This will be used to restrict certain - # calls from repeatly happening (when they - # should only happen say once per instance...) - self._runner = helpers.Runners(paths) - - def get_default_user(self): - return self.__default_user_name__ - - def add_default_user(self): - # Adds the ubuntu user using the rules: - # - Password is 'ubuntu', but is locked - # - nopasswd sudo access - - self.create_user(self.__default_user_name__, - plain_text_passwd=self.__default_user_name__, - home="/home/%s" % self.__default_user_name__, - shell="/bin/bash", - lockpasswd=True, - gecos="Ubuntu", - sudo="ALL=(ALL) NOPASSWD:ALL") - - LOG.info("Added default 'ubuntu' user with passwordless sudo") + super(Distro, self).__init__(self, name, cfg, paths) def create_user(self, name, **kargs): |