OXIESEC PANEL
- Current Dir:
/
/
snap
/
core
/
17210
/
usr
/
lib
/
python3
/
dist-packages
/
cloudinit
/
distros
/
parsers
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
10/02/2024 07:52:55 PM
rwxr-xr-x
📄
__init__.py
562 bytes
03/19/2021 02:37:22 PM
rw-r--r--
📁
__pycache__
-
10/02/2024 07:52:55 PM
rwxr-xr-x
📄
hostname.py
2.47 KB
03/19/2021 02:37:22 PM
rw-r--r--
📄
hosts.py
2.7 KB
03/19/2021 02:37:22 PM
rw-r--r--
📄
networkmanager_conf.py
734 bytes
03/19/2021 02:37:22 PM
rw-r--r--
📄
resolv_conf.py
5.36 KB
03/19/2021 02:37:22 PM
rw-r--r--
📄
sys_conf.py
3.83 KB
03/19/2021 02:37:22 PM
rw-r--r--
Editing: hostname.py
Close
# Copyright (C) 2012 Yahoo! Inc. # # Author: Joshua Harlow <harlowja@yahoo-inc.com> # # This file is part of cloud-init. See LICENSE file for license information. from io import StringIO from cloudinit.distros.parsers import chop_comment # Parser that knows how to work with /etc/hostname format class HostnameConf(object): def __init__(self, text): self._text = text self._contents = None def parse(self): if self._contents is None: self._contents = self._parse(self._text) def __str__(self): self.parse() contents = StringIO() for (line_type, components) in self._contents: if line_type == 'blank': contents.write("%s\n" % (components[0])) elif line_type == 'all_comment': contents.write("%s\n" % (components[0])) elif line_type == 'hostname': (hostname, tail) = components contents.write("%s%s\n" % (hostname, tail)) # Ensure trailing newline contents = contents.getvalue() if not contents.endswith("\n"): contents += "\n" return contents @property def hostname(self): self.parse() for (line_type, components) in self._contents: if line_type == 'hostname': return components[0] return None def set_hostname(self, your_hostname): your_hostname = your_hostname.strip() if not your_hostname: return self.parse() replaced = False for (line_type, components) in self._contents: if line_type == 'hostname': components[0] = str(your_hostname) replaced = True if not replaced: self._contents.append(('hostname', [str(your_hostname), ''])) def _parse(self, contents): entries = [] hostnames_found = set() for line in contents.splitlines(): if not len(line.strip()): entries.append(('blank', [line])) continue (head, tail) = chop_comment(line.strip(), '#') if not len(head): entries.append(('all_comment', [line])) continue entries.append(('hostname', [head, tail])) hostnames_found.add(head) if len(hostnames_found) > 1: raise IOError("Multiple hostnames (%s) found!" % (hostnames_found)) return entries # vi: ts=4 expandtab