Repository :
http://git.fedorahosted.org/cgit/cura-tools.git
On branch : master
---------------------------------------------------------------
commit 74ad64dadf498423f254bd3e01c50dcf493f9f65
Author: Peter Hatina <phatina(a)redhat.com>
Date: Fri Oct 5 14:00:08 2012 +0200
remove static settings before assigning a new one to the interface in fmci-ip.py
---------------------------------------------------------------
cli-tools/fmci/fmci_client_ip.py | 40 ++++++++++++++++++++-----------------
1 files changed, 22 insertions(+), 18 deletions(-)
diff --git a/cli-tools/fmci/fmci_client_ip.py b/cli-tools/fmci/fmci_client_ip.py
index 25b9c9a..ad4b248 100644
--- a/cli-tools/fmci/fmci_client_ip.py
+++ b/cli-tools/fmci/fmci_client_ip.py
@@ -54,7 +54,28 @@ class FmciIpClient(FmciBaseClient):
def __ipGetEthernetPortInstance(self, device):
return self._getInstances(FmciIpClient.LMI_ETHERNET_PORT_CLASS_NAME, device, Key
= "DeviceID")
+ def __ipGetIpAssignmentSettingData(self, device):
+ (inst_list, errorstr) =
self._getInstances(FmciIpClient.LMI_IP_ASSIGNMENT_SETTING_DATA_CLASS_NAME)
+ if not inst_list:
+ return (None, errorstr)
+ inst_list = inst_list if type(inst_list) == list else [inst_list]
+ rval_inst_list = filter(lambda x: x["Caption"] == "static-" +
device, inst_list)
+ if not rval_inst_list:
+ return (None, "No IP setting for device %s found" % device)
+ return (rval_inst_list, "")
+
+ def __ipRemoveStaticSettings(self, device):
+ (inst_list, errorstr) = self.__ipGetIpAssignmentSettingData(device)
+ if not inst_list:
+ return (False, errorstr)
+ for inst in inst_list:
+ (rval, errorstr) = self._deleteInstance(inst)
+ if not rval:
+ return (False, errorstr)
+ return (True, "")
+
def __ipCreateStaticSetting(self, device, address, **kwargs):
+ self.__ipRemoveStaticSettings(device)
(device_inst, errorstr) = self.__ipGetEthernetPortInstance(device)
if not device_inst:
return (False, {}, errorstr)
@@ -105,16 +126,6 @@ class FmciIpClient(FmciBaseClient):
(rval, rparam, errorstr) = self._callMethod(configuration_inst,
"ApplySettingToIPProtocolEndpoint", **args)
return (rval, errorstr)
- def __ipGetIpAssignmentSettingData(self, device):
- (inst_list, errorstr) =
self._getInstances(FmciIpClient.LMI_IP_ASSIGNMENT_SETTING_DATA_CLASS_NAME)
- if not inst_list:
- return (None, errorstr)
- inst_list = inst_list if type(inst_list) == list else [inst_list]
- rval_inst_list = filter(lambda x: x["Caption"] == "static-" +
device, inst_list)
- if not rval_inst_list:
- return (None, "No IP setting for device %s found" % device)
- return (rval_inst_list, "")
-
def ipListDevices(self, device = ""):
(inst_list, errorstr) = self.__ipGetIpProtocolEndpointInstances(device)
if not inst_list:
@@ -134,11 +145,4 @@ class FmciIpClient(FmciBaseClient):
return self.__ipApplyStaticSetting(device, setting_inst)
def ipDelAddress(self, device):
- (inst_list, errorstr) = self.__ipGetIpAssignmentSettingData(device)
- if not inst_list:
- return (False, errorstr)
- for inst in inst_list:
- (rval, errorstr) = self._deleteInstance(inst)
- if not rval:
- return (False, errorstr)
- return (True, "")
+ return self.__ipRemoveStaticSettings(device)