~cloud-init-dev/cloud-init/trunk

« back to all changes in this revision

Viewing changes to cloudinit/sources/helpers/vmware/imc/nic_base.py

  • Committer: Scott Moser
  • Date: 2016-08-10 15:06:15 UTC
  • Revision ID: smoser@ubuntu.com-20160810150615-ma2fv107w3suy1ma
README: Mention move of revision control to git.

cloud-init development has moved its revision control to git.
It is available at 
  https://code.launchpad.net/cloud-init

Clone with 
  git clone https://git.launchpad.net/cloud-init
or
  git clone git+ssh://git.launchpad.net/cloud-init

For more information see
  https://git.launchpad.net/cloud-init/tree/HACKING.rst

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# vi: ts=4 expandtab
2
 
#
3
 
#    Copyright (C) 2015 Canonical Ltd.
4
 
#    Copyright (C) 2015 VMware Inc.
5
 
#
6
 
#    Author: Sankar Tanguturi <stanguturi@vmware.com>
7
 
#
8
 
#    This program is free software: you can redistribute it and/or modify
9
 
#    it under the terms of the GNU General Public License version 3, as
10
 
#    published by the Free Software Foundation.
11
 
#
12
 
#    This program is distributed in the hope that it will be useful,
13
 
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
 
#    GNU General Public License for more details.
16
 
#
17
 
#    You should have received a copy of the GNU General Public License
18
 
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
19
 
 
20
 
 
21
 
class NicBase(object):
22
 
    """
23
 
    Define what are expected of each nic.
24
 
    The following properties should be provided in an implementation class.
25
 
    """
26
 
 
27
 
    @property
28
 
    def mac(self):
29
 
        """
30
 
        Retrieves the mac address of the nic
31
 
        @return (str) : the MACADDR setting
32
 
        """
33
 
        raise NotImplementedError('MACADDR')
34
 
 
35
 
    @property
36
 
    def primary(self):
37
 
        """
38
 
        Retrieves whether the nic is the primary nic
39
 
        Indicates whether NIC will be used to define the default gateway.
40
 
        If none of the NICs is configured to be primary, default gateway won't
41
 
        be set.
42
 
        @return (bool): the PRIMARY setting
43
 
        """
44
 
        raise NotImplementedError('PRIMARY')
45
 
 
46
 
    @property
47
 
    def onboot(self):
48
 
        """
49
 
        Retrieves whether the nic should be up at the boot time
50
 
        @return (bool) : the ONBOOT setting
51
 
        """
52
 
        raise NotImplementedError('ONBOOT')
53
 
 
54
 
    @property
55
 
    def bootProto(self):
56
 
        """
57
 
        Retrieves the boot protocol of the nic
58
 
        @return (str): the BOOTPROTO setting, valid values: dhcp and static.
59
 
        """
60
 
        raise NotImplementedError('BOOTPROTO')
61
 
 
62
 
    @property
63
 
    def ipv4_mode(self):
64
 
        """
65
 
        Retrieves the IPv4_MODE
66
 
        @return (str): the IPv4_MODE setting, valid values:
67
 
        backwards_compatible, static, dhcp, disabled, as_is
68
 
        """
69
 
        raise NotImplementedError('IPv4_MODE')
70
 
 
71
 
    @property
72
 
    def staticIpv4(self):
73
 
        """
74
 
        Retrieves the static IPv4 configuration of the nic
75
 
        @return (StaticIpv4Base list): the static ipv4 setting
76
 
        """
77
 
        raise NotImplementedError('Static IPv4')
78
 
 
79
 
    @property
80
 
    def staticIpv6(self):
81
 
        """
82
 
        Retrieves the IPv6 configuration of the nic
83
 
        @return (StaticIpv6Base list): the static ipv6 setting
84
 
        """
85
 
        raise NotImplementedError('Static Ipv6')
86
 
 
87
 
    def validate(self):
88
 
        """
89
 
        Validate the object
90
 
        For example, the staticIpv4 property is required and should not be
91
 
        empty when ipv4Mode is STATIC
92
 
        """
93
 
        raise NotImplementedError('Check constraints on properties')
94
 
 
95
 
 
96
 
class StaticIpv4Base(object):
97
 
    """
98
 
    Define what are expected of a static IPv4 setting
99
 
    The following properties should be provided in an implementation class.
100
 
    """
101
 
 
102
 
    @property
103
 
    def ip(self):
104
 
        """
105
 
        Retrieves the Ipv4 address
106
 
        @return (str): the IPADDR setting
107
 
        """
108
 
        raise NotImplementedError('Ipv4 Address')
109
 
 
110
 
    @property
111
 
    def netmask(self):
112
 
        """
113
 
        Retrieves the Ipv4 NETMASK setting
114
 
        @return (str): the NETMASK setting
115
 
        """
116
 
        raise NotImplementedError('Ipv4 NETMASK')
117
 
 
118
 
    @property
119
 
    def gateways(self):
120
 
        """
121
 
        Retrieves the gateways on this Ipv4 subnet
122
 
        @return (str list): the GATEWAY setting
123
 
        """
124
 
        raise NotImplementedError('Ipv4 GATEWAY')
125
 
 
126
 
 
127
 
class StaticIpv6Base(object):
128
 
    """Define what are expected of a static IPv6 setting
129
 
    The following properties should be provided in an implementation class.
130
 
    """
131
 
 
132
 
    @property
133
 
    def ip(self):
134
 
        """
135
 
        Retrieves the Ipv6 address
136
 
        @return (str): the IPv6ADDR setting
137
 
        """
138
 
        raise NotImplementedError('Ipv6 Address')
139
 
 
140
 
    @property
141
 
    def netmask(self):
142
 
        """
143
 
        Retrieves the Ipv6 NETMASK setting
144
 
        @return (str): the IPv6NETMASK setting
145
 
        """
146
 
        raise NotImplementedError('Ipv6 NETMASK')
147
 
 
148
 
    @property
149
 
    def gateway(self):
150
 
        """
151
 
        Retrieves the Ipv6 GATEWAY setting
152
 
        @return (str): the IPv6GATEWAY setting
153
 
        """
154
 
        raise NotImplementedError('Ipv6 GATEWAY')