diff options
author | Sankar Tanguturi <stanguturi@stanguturi-rhel> | 2016-01-05 12:05:11 -0800 |
---|---|---|
committer | Sankar Tanguturi <stanguturi@stanguturi-rhel> | 2016-01-05 12:05:11 -0800 |
commit | 8d9e5bd7fcda8f56a4fe087150db1456af738335 (patch) | |
tree | 11c81ba04c8193c2e4c4cbdd5b80b09530440d55 /cloudinit/sources/helpers/vmware/imc/nic.py | |
parent | 8844ffb5988bcfbb8cfbe57d9139c3dcb8b429cc (diff) | |
download | vyos-cloud-init-8d9e5bd7fcda8f56a4fe087150db1456af738335.tar.gz vyos-cloud-init-8d9e5bd7fcda8f56a4fe087150db1456af738335.zip |
Fixed all the styling nits.
Used proper naming convention for the methods.
Added proper documentation.
Checked pep8 and flake8 output and no issues were reported.
Diffstat (limited to 'cloudinit/sources/helpers/vmware/imc/nic.py')
-rw-r--r-- | cloudinit/sources/helpers/vmware/imc/nic.py | 254 |
1 files changed, 147 insertions, 107 deletions
diff --git a/cloudinit/sources/helpers/vmware/imc/nic.py b/cloudinit/sources/helpers/vmware/imc/nic.py index b90a5640..bb45a9e6 100644 --- a/cloudinit/sources/helpers/vmware/imc/nic.py +++ b/cloudinit/sources/helpers/vmware/imc/nic.py @@ -1,107 +1,147 @@ -from cloudinit.sources.helpers.vmware.imc.boot_proto import BootProto
-
-
-class Nic:
- def __init__(self, name, configFile):
- self._name = name
- self._configFile = configFile
-
- def _get(self, what):
- return self._configFile.get(self.name + what, None)
-
- def _getCnt(self, prefix):
- return self._configFile.getCnt(self.name + prefix)
-
- @property
- def name(self):
- return self._name
-
- @property
- def mac(self):
- return self._get('|MACADDR').lower()
-
- @property
- def bootProto(self):
- return self._get('|BOOTPROTO').lower()
-
- @property
- def ipv4(self):
- # TODO implement NONE
- if self.bootProto == BootProto.STATIC:
- return StaticIpv4Conf(self)
-
- return DhcpIpv4Conf(self)
-
- @property
- def ipv6(self):
- # TODO implement NONE
- cnt = self._getCnt("|IPv6ADDR|")
-
- if cnt != 0:
- return StaticIpv6Conf(self)
-
- return DhcpIpv6Conf(self)
-
-
-class DhcpIpv4Conf:
- def __init__(self, nic):
- self._nic = nic
-
-
-class StaticIpv4Addr:
- def __init__(self, nic):
- self._nic = nic
-
- @property
- def ip(self):
- return self._nic._get('|IPADDR')
-
- @property
- def netmask(self):
- return self._nic._get('|NETMASK')
-
- @property
- def gateway(self):
- return self._nic._get('|GATEWAY')
-
-
-class StaticIpv4Conf(DhcpIpv4Conf):
- @property
- def addrs(self):
- return [StaticIpv4Addr(self._nic)]
-
-
-class DhcpIpv6Conf:
- def __init__(self, nic):
- self._nic = nic
-
-
-class StaticIpv6Addr:
- def __init__(self, nic, index):
- self._nic = nic
- self._index = index
-
- @property
- def ip(self):
- return self._nic._get("|IPv6ADDR|" + str(self._index))
-
- @property
- def prefix(self):
- return self._nic._get("|IPv6NETMASK|" + str(self._index))
-
- @property
- def gateway(self):
- return self._nic._get("|IPv6GATEWAY|" + str(self._index))
-
-
-class StaticIpv6Conf(DhcpIpv6Conf):
- @property
- def addrs(self):
- cnt = self._nic._getCnt("|IPv6ADDR|")
-
- res = []
-
- for i in range(1, cnt + 1):
- res.append(StaticIpv6Addr(self._nic, i))
-
- return res
+# vi: ts=4 expandtab +# +# Copyright (C) 2015 Canonical Ltd. +# Copyright (C) 2015 VMware Inc. +# +# Author: Sankar Tanguturi <stanguturi@vmware.com> +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 3, as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +from .boot_proto import BootProto + + +class Nic: + """ + Holds the information about each NIC specified + in the customization specification file + """ + + def __init__(self, name, configFile): + self._name = name + self._configFile = configFile + + def _get(self, what): + return self._configFile.get(self.name + what, None) + + def _get_count(self, prefix): + return self._configFile.get_count(self.name + prefix) + + @property + def name(self): + return self._name + + @property + def mac(self): + return self._get('|MACADDR').lower() + + @property + def bootProto(self): + return self._get('|BOOTPROTO').lower() + + @property + def ipv4(self): + """ + Retrieves the DHCP or Static IPv6 configuration + based on the BOOTPROTO property associated with the NIC + """ + if self.bootProto == BootProto.STATIC: + return StaticIpv4Conf(self) + + return DhcpIpv4Conf(self) + + @property + def ipv6(self): + cnt = self._get_count("|IPv6ADDR|") + + if cnt != 0: + return StaticIpv6Conf(self) + + return DhcpIpv6Conf(self) + + +class DhcpIpv4Conf: + """DHCP Configuration Setting.""" + + def __init__(self, nic): + self._nic = nic + + +class StaticIpv4Addr: + """Static IPV4 Setting.""" + + def __init__(self, nic): + self._nic = nic + + @property + def ip(self): + return self._nic._get('|IPADDR') + + @property + def netmask(self): + return self._nic._get('|NETMASK') + + @property + def gateway(self): + return self._nic._get('|GATEWAY') + + +class StaticIpv4Conf(DhcpIpv4Conf): + """Static IPV4 Configuration.""" + + @property + def addrs(self): + """Return the list of associated IPv4 addresses.""" + return [StaticIpv4Addr(self._nic)] + + +class DhcpIpv6Conf: + """DHCP IPV6 Configuration.""" + + def __init__(self, nic): + self._nic = nic + + +class StaticIpv6Addr: + """Static IPV6 Address.""" + + def __init__(self, nic, index): + self._nic = nic + self._index = index + + @property + def ip(self): + return self._nic._get("|IPv6ADDR|" + str(self._index)) + + @property + def prefix(self): + return self._nic._get("|IPv6NETMASK|" + str(self._index)) + + @property + def gateway(self): + return self._nic._get("|IPv6GATEWAY|" + str(self._index)) + + +class StaticIpv6Conf(DhcpIpv6Conf): + """Static IPV6 Configuration.""" + + @property + def addrs(self): + """Return the list Associated IPV6 addresses.""" + cnt = self._nic._get_count("|IPv6ADDR|") + + res = [] + + for i in range(1, cnt + 1): + res.append(StaticIpv6Addr(self._nic, i)) + + return res |