ee124d2e98
Remove IP proxy methods in os_vif.internal.command.ip.__init__.py. Both Windows and Linux IP implementations have the same interface, IpCommand. Method calls (set, add, delete, exists) must be the same for both IP classes, making those proxy calls unnecessary. Removed a nesting level for internal IP commands. Now those commands are located in os_vif.internal.ip. Change-Id: Id8b71172fb06b435cf169a7e55c11233f22fa65b Closes-Bug: #1817940
47 lines
1.7 KiB
Python
47 lines
1.7 KiB
Python
# Derived from: neutron/agent/windows/ip_lib.py
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
import netifaces
|
|
|
|
from oslo_log import log as logging
|
|
|
|
from os_vif import exception
|
|
from os_vif.internal.ip import ip_command
|
|
|
|
LOG = logging.getLogger(__name__)
|
|
|
|
|
|
class Netifaces(ip_command.IpCommand):
|
|
|
|
def exists(self, device):
|
|
"""Return True if the device exists in the namespace."""
|
|
try:
|
|
return bool(netifaces.ifaddresses(device))
|
|
except ValueError:
|
|
LOG.warning("The device does not exist on the system: %s", device)
|
|
except OSError:
|
|
LOG.error("Failed to get interface addresses: %s", device)
|
|
return False
|
|
|
|
def set(self, device, check_exit_code=None, state=None, mtu=None,
|
|
address=None, promisc=None, master=None):
|
|
exception.NotImplementedForOS(function='ip.set', os='Windows')
|
|
|
|
def add(self, device, dev_type, check_exit_code=None, peer=None, link=None,
|
|
vlan_id=None):
|
|
exception.NotImplementedForOS(function='ip.add', os='Windows')
|
|
|
|
def delete(self, device, check_exit_code=None):
|
|
exception.NotImplementedForOS(function='ip.delete', os='Windows')
|