Hold one single ip
| 139 | |
| 140 | |
| 141 | class CsInterface: |
| 142 | |
| 143 | """ Hold one single ip """ |
| 144 | |
| 145 | def __init__(self, o, config): |
| 146 | self.address = o |
| 147 | self.config = config |
| 148 | |
| 149 | def get_ip(self): |
| 150 | return self.get_attr("public_ip") |
| 151 | |
| 152 | def get_ip6(self): |
| 153 | if not self.config.is_vpc(): |
| 154 | return self.config.cmdline().get_dev_ip6prelen(self.get_device()) |
| 155 | if self.is_public(): |
| 156 | return self.config.guestnetwork().get_router_ip6prelen() |
| 157 | elif self.is_guest(): |
| 158 | return self.config.guestnetwork().get_dev_ip6prelen(self.get_device()) |
| 159 | return self.get_attr("public_ip6") |
| 160 | |
| 161 | def get_network(self): |
| 162 | return self.get_attr("network") |
| 163 | |
| 164 | def get_netmask(self): |
| 165 | return self.get_attr("netmask") |
| 166 | |
| 167 | def get_gateway(self): |
| 168 | if self.config.is_vpc() or not self.is_guest(): |
| 169 | return self.get_attr("gateway") |
| 170 | else: |
| 171 | return self.config.cmdline().get_guest_gw() |
| 172 | |
| 173 | def get_gateway6(self): |
| 174 | if self.config.is_vpc(): |
| 175 | if self.is_public(): |
| 176 | return self.config.guestnetwork().get_router_ip6gateway() |
| 177 | elif self.is_guest(): |
| 178 | return self.config.guestnetwork().get_dev_ip6gateway(self.get_device()) |
| 179 | else: |
| 180 | if self.is_public(): |
| 181 | return self.config.cmdline().get_ip6gateway() |
| 182 | elif self.is_guest(): |
| 183 | return self.config.cmdline().get_guest_ip6gateway() |
| 184 | return self.get_attr("gateway6") |
| 185 | |
| 186 | def ip_in_subnet(self, ip): |
| 187 | ipo = IPAddress(ip) |
| 188 | net = IPNetwork("%s/%s" % (self.get_ip(), self.get_size())) |
| 189 | return ipo in net |
| 190 | |
| 191 | def get_gateway_cidr(self): |
| 192 | return "%s/%s" % (self.get_gateway(), self.get_size()) |
| 193 | |
| 194 | def get_gateway6_cidr(self): |
| 195 | gw6 = self.get_gateway6() |
| 196 | cidr6_size = self.get_cidr6_size() |
| 197 | if not gw6 or not cidr6_size or gw6 == "ERROR" or cidr6_size == "ERROR": |
| 198 | return False |
no outgoing calls