summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cloudinit/distros/__init__.py19
-rw-r--r--cloudinit/distros/parsers/__init__.py1
-rw-r--r--cloudinit/distros/parsers/hostname.py2
-rw-r--r--cloudinit/distros/parsers/resolv_conf.py4
-rw-r--r--cloudinit/distros/parsers/sys_conf.py2
5 files changed, 15 insertions, 13 deletions
diff --git a/cloudinit/distros/__init__.py b/cloudinit/distros/__init__.py
index fa7cc1ca..4bde2393 100644
--- a/cloudinit/distros/__init__.py
+++ b/cloudinit/distros/__init__.py
@@ -189,15 +189,20 @@ class Distro(object):
else:
need_change = True
for entry in prev_info:
- if sorted(entry) == sorted([fqdn, hostname]):
- # Exists already, leave it be
- need_change = False
- break
+ entry_fqdn = None
+ entry_aliases = []
+ if len(entry) >= 1:
+ entry_fqdn = entry[0]
+ if len(entry) >= 2:
+ entry_aliases = entry[1:]
+ if entry_fqdn is not None and entry_fqdn == fqdn:
+ if hostname in entry_aliases:
+ # Exists already, leave it be
+ need_change = False
if need_change:
- # Doesn't exist, change the first
- # entry to be this entry
+ # Doesn't exist, add that entry in...
new_entries = list(prev_info)
- new_entries[0] = [fqdn, hostname]
+ new_entries.append([fqdn, hostname])
eh.del_entries(local_ip)
for entry in new_entries:
if len(entry) == 1:
diff --git a/cloudinit/distros/parsers/__init__.py b/cloudinit/distros/parsers/__init__.py
index 8334a5e6..1c413eaa 100644
--- a/cloudinit/distros/parsers/__init__.py
+++ b/cloudinit/distros/parsers/__init__.py
@@ -16,6 +16,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
def chop_comment(text, comment_chars):
comment_locations = [text.find(c) for c in comment_chars]
comment_locations = [c for c in comment_locations if c != -1]
diff --git a/cloudinit/distros/parsers/hostname.py b/cloudinit/distros/parsers/hostname.py
index 7e19f017..617b3c36 100644
--- a/cloudinit/distros/parsers/hostname.py
+++ b/cloudinit/distros/parsers/hostname.py
@@ -86,5 +86,3 @@ class HostnameConf(object):
raise IOError("Multiple hostnames (%s) found!"
% (hostnames_found))
return entries
-
-
diff --git a/cloudinit/distros/parsers/resolv_conf.py b/cloudinit/distros/parsers/resolv_conf.py
index 377ada6b..5733c25a 100644
--- a/cloudinit/distros/parsers/resolv_conf.py
+++ b/cloudinit/distros/parsers/resolv_conf.py
@@ -127,7 +127,7 @@ class ResolvConf(object):
# Hard restriction on only 6 search domains
raise ValueError(("Adding %r would go beyond the "
"'6' maximum search domains") % (search_domain))
- s_list = " ".join(new_sds)
+ s_list = " ".join(new_sds)
if len(s_list) > 256:
# Some hard limit on 256 chars total
raise ValueError(("Adding %r would go beyond the "
@@ -167,5 +167,3 @@ class ResolvConf(object):
raise IOError("Unexpected resolv.conf option %s" % (cfg_opt))
entries.append(("option", [cfg_opt, cfg_values, tail]))
return entries
-
-
diff --git a/cloudinit/distros/parsers/sys_conf.py b/cloudinit/distros/parsers/sys_conf.py
index 5cd765fc..20ca1871 100644
--- a/cloudinit/distros/parsers/sys_conf.py
+++ b/cloudinit/distros/parsers/sys_conf.py
@@ -40,7 +40,7 @@ SHELL_VAR_REGEXES = [
# Things like $?, $0, $-, $@
re.compile(r"\$[0-9#\?\-@\*]"),
# Things like ${blah:1} - but this one
- # gets very complex so just try the
+ # gets very complex so just try the
# simple path
re.compile(r"\$\{.+\}"),
]