diff options
author | Javier Jardón <javier.jardon@codethink.co.uk> | 2015-03-06 12:55:01 +0000 |
---|---|---|
committer | Javier Jardón <javier.jardon@codethink.co.uk> | 2015-03-16 17:59:54 +0000 |
commit | c33a852ba7b72258165d33f4e6810455483abc3d (patch) | |
tree | d4b3474683abe5c5ddfd50215569933ce28a61b8 | |
parent | 8d36b6f71a2858843d9a7c6a878ebb2c85fda2a5 (diff) | |
download | definitions-c33a852ba7b72258165d33f4e6810455483abc3d.tar.gz |
simple-network.configure: process pairs of parameters in a function
-rwxr-xr-x | simple-network.configure | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/simple-network.configure b/simple-network.configure index 0e514e0b..a058cba7 100755 --- a/simple-network.configure +++ b/simple-network.configure @@ -118,9 +118,38 @@ class SimpleNetworkConfigurationExtension(cliapp.Application): lines += ["[Network]"] if itype == "dhcp": lines += ["DHCP=yes"] + else: + lines += self.generate_networkd_entries(pairs) return "\n".join(lines) + def generate_networkd_entries(self, pairs): + """Generate networkd configuration entries with the other parameters""" + + address = None + netmask = None + gateway = None + lines = [] + for pair in pairs: + if pair[0] == 'address': + address = pair[1] + elif pair[0] == 'netmask': + netmask = pair[1] + elif pair[0] == 'gateway': + gateway = pair[1] + + if address and netmask: + network_suffix = self.convert_net_mask_to_cidr_suffix (netmask); + address_line = address + '/' + str(network_suffix) + lines += ["Address=%s" % address_line] + elif address or netmask: + raise Exception('address and netmask must be specified together') + + if gateway is not None: + lines += ["Gateway=%s" % gateway] + + return lines + def convert_net_mask_to_cidr_suffix(self, mask): """Convert dotted decimal form of a subnet mask to CIDR suffix notation |