summaryrefslogtreecommitdiff
path: root/cloudinit/distros
diff options
context:
space:
mode:
authorChad Smith <chad.smith@canonical.com>2020-02-05 13:56:17 -0700
committergit-ubuntu importer <ubuntu-devel-discuss@lists.ubuntu.com>2020-02-05 21:01:09 +0000
commited4c6007a85f981594665ba0d97a8647fdd710ab (patch)
treed5fb98a84193aab40bf8bd79fc15bc6f61a1fee7 /cloudinit/distros
parent27349e3b80fe7ce788b0be722c037e2c76f8555f (diff)
downloadcloud-init-git-ed4c6007a85f981594665ba0d97a8647fdd710ab.tar.gz
19.4-56-g06e324ff-0ubuntu1 (patches unapplied)
Imported using git-ubuntu import.
Diffstat (limited to 'cloudinit/distros')
-rwxr-xr-xcloudinit/distros/__init__.py13
-rw-r--r--cloudinit/distros/debian.py3
-rw-r--r--cloudinit/distros/freebsd.py7
-rw-r--r--cloudinit/distros/opensuse.py1
-rw-r--r--cloudinit/distros/parsers/hostname.py2
-rw-r--r--cloudinit/distros/parsers/hosts.py2
-rw-r--r--cloudinit/distros/parsers/resolv_conf.py2
-rw-r--r--cloudinit/distros/parsers/sys_conf.py6
-rwxr-xr-xcloudinit/distros/ug_util.py22
9 files changed, 24 insertions, 34 deletions
diff --git a/cloudinit/distros/__init__.py b/cloudinit/distros/__init__.py
index cdce26f2..92598a2d 100755
--- a/cloudinit/distros/__init__.py
+++ b/cloudinit/distros/__init__.py
@@ -9,13 +9,11 @@
#
# This file is part of cloud-init. See LICENSE file for license information.
-import six
-from six import StringIO
-
import abc
import os
import re
import stat
+from io import StringIO
from cloudinit import importer
from cloudinit import log as logging
@@ -53,8 +51,7 @@ _EC2_AZ_RE = re.compile('^[a-z][a-z]-(?:[a-z]+-)+[0-9][a-z]$')
PREFERRED_NTP_CLIENTS = ['chrony', 'systemd-timesyncd', 'ntp', 'ntpdate']
-@six.add_metaclass(abc.ABCMeta)
-class Distro(object):
+class Distro(metaclass=abc.ABCMeta):
usr_lib_exec = "/usr/lib"
hosts_fn = "/etc/hosts"
@@ -429,7 +426,7 @@ class Distro(object):
# support kwargs having groups=[list] or groups="g1,g2"
groups = kwargs.get('groups')
if groups:
- if isinstance(groups, six.string_types):
+ if isinstance(groups, str):
groups = groups.split(",")
# remove any white spaces in group names, most likely
@@ -544,7 +541,7 @@ class Distro(object):
if 'ssh_authorized_keys' in kwargs:
# Try to handle this in a smart manner.
keys = kwargs['ssh_authorized_keys']
- if isinstance(keys, six.string_types):
+ if isinstance(keys, str):
keys = [keys]
elif isinstance(keys, dict):
keys = list(keys.values())
@@ -668,7 +665,7 @@ class Distro(object):
if isinstance(rules, (list, tuple)):
for rule in rules:
lines.append("%s %s" % (user, rule))
- elif isinstance(rules, six.string_types):
+ elif isinstance(rules, str):
lines.append("%s %s" % (user, rules))
else:
msg = "Can not create sudoers rule addition with type %r"
diff --git a/cloudinit/distros/debian.py b/cloudinit/distros/debian.py
index cf082c73..128bb523 100644
--- a/cloudinit/distros/debian.py
+++ b/cloudinit/distros/debian.py
@@ -205,8 +205,7 @@ class Distro(distros.Distro):
["update"], freq=PER_INSTANCE)
def get_primary_arch(self):
- (arch, _err) = util.subp(['dpkg', '--print-architecture'])
- return str(arch).strip()
+ return util.get_dpkg_architecture()
def _get_wrapper_prefix(cmd, mode):
diff --git a/cloudinit/distros/freebsd.py b/cloudinit/distros/freebsd.py
index 40e435e7..026d1142 100644
--- a/cloudinit/distros/freebsd.py
+++ b/cloudinit/distros/freebsd.py
@@ -5,10 +5,8 @@
# This file is part of cloud-init. See LICENSE file for license information.
import os
-import six
-from six import StringIO
-
import re
+from io import StringIO
from cloudinit import distros
from cloudinit import helpers
@@ -108,8 +106,7 @@ class Distro(distros.Distro):
}
for key, val in kwargs.items():
- if (key in pw_useradd_opts and val and
- isinstance(val, six.string_types)):
+ if key in pw_useradd_opts and val and isinstance(val, str):
pw_useradd_cmd.extend([pw_useradd_opts[key], val])
elif key in pw_useradd_flags and val:
diff --git a/cloudinit/distros/opensuse.py b/cloudinit/distros/opensuse.py
index e41e2f7b..dd56a3f4 100644
--- a/cloudinit/distros/opensuse.py
+++ b/cloudinit/distros/opensuse.py
@@ -37,6 +37,7 @@ class Distro(distros.Distro):
renderer_configs = {
'sysconfig': {
'control': 'etc/sysconfig/network/config',
+ 'flavor': 'suse',
'iface_templates': '%(base)s/network/ifcfg-%(name)s',
'netrules_path': (
'etc/udev/rules.d/85-persistent-net-cloud-init.rules'),
diff --git a/cloudinit/distros/parsers/hostname.py b/cloudinit/distros/parsers/hostname.py
index dd434ac6..e74c083c 100644
--- a/cloudinit/distros/parsers/hostname.py
+++ b/cloudinit/distros/parsers/hostname.py
@@ -4,7 +4,7 @@
#
# This file is part of cloud-init. See LICENSE file for license information.
-from six import StringIO
+from io import StringIO
from cloudinit.distros.parsers import chop_comment
diff --git a/cloudinit/distros/parsers/hosts.py b/cloudinit/distros/parsers/hosts.py
index 64444581..54e4e934 100644
--- a/cloudinit/distros/parsers/hosts.py
+++ b/cloudinit/distros/parsers/hosts.py
@@ -4,7 +4,7 @@
#
# This file is part of cloud-init. See LICENSE file for license information.
-from six import StringIO
+from io import StringIO
from cloudinit.distros.parsers import chop_comment
diff --git a/cloudinit/distros/parsers/resolv_conf.py b/cloudinit/distros/parsers/resolv_conf.py
index a62055ae..299d54b5 100644
--- a/cloudinit/distros/parsers/resolv_conf.py
+++ b/cloudinit/distros/parsers/resolv_conf.py
@@ -4,7 +4,7 @@
#
# This file is part of cloud-init. See LICENSE file for license information.
-from six import StringIO
+from io import StringIO
from cloudinit.distros.parsers import chop_comment
from cloudinit import log as logging
diff --git a/cloudinit/distros/parsers/sys_conf.py b/cloudinit/distros/parsers/sys_conf.py
index 44df17de..dee4c551 100644
--- a/cloudinit/distros/parsers/sys_conf.py
+++ b/cloudinit/distros/parsers/sys_conf.py
@@ -4,11 +4,9 @@
#
# This file is part of cloud-init. See LICENSE file for license information.
-import six
-from six import StringIO
-
import pipes
import re
+from io import StringIO
# This library is used to parse/write
# out the various sysconfig files edited (best attempt effort)
@@ -65,7 +63,7 @@ class SysConf(configobj.ConfigObj):
return out_contents.getvalue()
def _quote(self, value, multiline=False):
- if not isinstance(value, six.string_types):
+ if not isinstance(value, str):
raise ValueError('Value "%s" is not a string' % (value))
if len(value) == 0:
return ''
diff --git a/cloudinit/distros/ug_util.py b/cloudinit/distros/ug_util.py
index 9378dd78..08446a95 100755
--- a/cloudinit/distros/ug_util.py
+++ b/cloudinit/distros/ug_util.py
@@ -9,8 +9,6 @@
#
# This file is part of cloud-init. See LICENSE file for license information.
-import six
-
from cloudinit import log as logging
from cloudinit import type_utils
from cloudinit import util
@@ -29,7 +27,7 @@ LOG = logging.getLogger(__name__)
# is the standard form used in the rest
# of cloud-init
def _normalize_groups(grp_cfg):
- if isinstance(grp_cfg, six.string_types):
+ if isinstance(grp_cfg, str):
grp_cfg = grp_cfg.strip().split(",")
if isinstance(grp_cfg, list):
c_grp_cfg = {}
@@ -39,7 +37,7 @@ def _normalize_groups(grp_cfg):
if k not in c_grp_cfg:
if isinstance(v, list):
c_grp_cfg[k] = list(v)
- elif isinstance(v, six.string_types):
+ elif isinstance(v, str):
c_grp_cfg[k] = [v]
else:
raise TypeError("Bad group member type %s" %
@@ -47,12 +45,12 @@ def _normalize_groups(grp_cfg):
else:
if isinstance(v, list):
c_grp_cfg[k].extend(v)
- elif isinstance(v, six.string_types):
+ elif isinstance(v, str):
c_grp_cfg[k].append(v)
else:
raise TypeError("Bad group member type %s" %
type_utils.obj_name(v))
- elif isinstance(i, six.string_types):
+ elif isinstance(i, str):
if i not in c_grp_cfg:
c_grp_cfg[i] = []
else:
@@ -89,7 +87,7 @@ def _normalize_users(u_cfg, def_user_cfg=None):
if isinstance(u_cfg, dict):
ad_ucfg = []
for (k, v) in u_cfg.items():
- if isinstance(v, (bool, int, float) + six.string_types):
+ if isinstance(v, (bool, int, float, str)):
if util.is_true(v):
ad_ucfg.append(str(k))
elif isinstance(v, dict):
@@ -99,12 +97,12 @@ def _normalize_users(u_cfg, def_user_cfg=None):
raise TypeError(("Unmappable user value type %s"
" for key %s") % (type_utils.obj_name(v), k))
u_cfg = ad_ucfg
- elif isinstance(u_cfg, six.string_types):
+ elif isinstance(u_cfg, str):
u_cfg = util.uniq_merge_sorted(u_cfg)
users = {}
for user_config in u_cfg:
- if isinstance(user_config, (list,) + six.string_types):
+ if isinstance(user_config, (list, str)):
for u in util.uniq_merge(user_config):
if u and u not in users:
users[u] = {}
@@ -209,7 +207,7 @@ def normalize_users_groups(cfg, distro):
old_user = cfg['user']
# Translate it into the format that is more useful
# going forward
- if isinstance(old_user, six.string_types):
+ if isinstance(old_user, str):
old_user = {
'name': old_user,
}
@@ -238,7 +236,7 @@ def normalize_users_groups(cfg, distro):
default_user_config = util.mergemanydict([old_user, distro_user_config])
base_users = cfg.get('users', [])
- if not isinstance(base_users, (list, dict) + six.string_types):
+ if not isinstance(base_users, (list, dict, str)):
LOG.warning(("Format for 'users' key must be a comma separated string"
" or a dictionary or a list and not %s"),
type_utils.obj_name(base_users))
@@ -252,7 +250,7 @@ def normalize_users_groups(cfg, distro):
base_users.append({'name': 'default'})
elif isinstance(base_users, dict):
base_users['default'] = dict(base_users).get('default', True)
- elif isinstance(base_users, six.string_types):
+ elif isinstance(base_users, str):
# Just append it on to be re-parsed later
base_users += ",default"