summaryrefslogtreecommitdiff
path: root/cloudinit/distros
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
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')
-rw-r--r--cloudinit/distros/__init__.py28
-rw-r--r--cloudinit/distros/ubuntu.py32
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):