from bootstrapvz.base import Task from .. import phases import os class RemoveDNSInfo(Task): description = 'Removing resolv.conf' phase = phases.system_cleaning @classmethod def run(cls, info): if os.path.isfile(os.path.join(info.root, 'etc/resolv.conf')): os.remove(os.path.join(info.root, 'etc/resolv.conf')) class RemoveHostname(Task): description = 'Removing the hostname file' phase = phases.system_cleaning @classmethod def run(cls, info): if os.path.isfile(os.path.join(info.root, 'etc/hostname')): os.remove(os.path.join(info.root, 'etc/hostname')) class SetHostname(Task): description = 'Writing hostname into the hostname file' phase = phases.system_modification @classmethod def run(cls, info): hostname = info.manifest.system['hostname'].format(**info.manifest_vars) hostname_file_path = os.path.join(info.root, 'etc/hostname') with open(hostname_file_path, 'w') as hostname_file: hostname_file.write(hostname) hosts_path = os.path.join(info.root, 'etc/hosts') from bootstrapvz.common.tools import sed_i sed_i(hosts_path, '^127.0.0.1\tlocalhost$', '127.0.0.1\tlocalhost\n127.0.1.1\t' + hostname) class ConfigureNetworkIF(Task): description = 'Configuring network interfaces' phase = phases.system_modification @classmethod def run(cls, info): network_config_path = os.path.join(os.path.dirname(__file__), 'network-configuration.yml') from ..tools import config_get if_config = config_get(network_config_path, [info.manifest.release.codename]) interfaces_path = os.path.join(info.root, 'etc/network/interfaces') with open(interfaces_path, 'a') as interfaces: interfaces.write(if_config + '\n')