diff options
author | Alexandru Avadanii <Alexandru.Avadanii@enea.com> | 2016-05-23 22:09:41 +0200 |
---|---|---|
committer | Alexandru Avadanii <Alexandru.Avadanii@enea.com> | 2016-05-26 14:50:43 +0200 |
commit | 118492dda9dac81d503ac0b8c5b1947ae77faf05 (patch) | |
tree | 3d448f31c2a1dbdf1b7b7a77aeae127112a9cd0e | |
parent | e310f8ba76a2d3228544720c3f83f30315ab4004 (diff) |
deploy: ipmi adapter: Add <port> config support.
Sometimes the IPMI lanplus protocol listens on a non-standard
remote port, e.g. when target nodes are interfaced through a
fake IPMI BMC application that listens on multiple ports on the
same IP address.
Therefore, allow setting IPMI port in the DHA using a new
property named `ipmiPort`, and pass it along to `ipmitool` when set.
CHANGE: get_access_info now also supports specifying the IPMI
port to use with `ipmitool` by configuring the `ipmiPort`
property in the DHA.
hp_adapter.py: updated `get_access_info` return signature with
the new (unused there) `ipmiport`.
Change-Id: Ibff1309b17733af1a6fc8c5008495f42d7ef084a
-rw-r--r-- | patches/opnfv-fuel/0030-deploy-ipmi-adapter-Add-port-config-support.patch | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/patches/opnfv-fuel/0030-deploy-ipmi-adapter-Add-port-config-support.patch b/patches/opnfv-fuel/0030-deploy-ipmi-adapter-Add-port-config-support.patch new file mode 100644 index 00000000..4b5a893e --- /dev/null +++ b/patches/opnfv-fuel/0030-deploy-ipmi-adapter-Add-port-config-support.patch @@ -0,0 +1,74 @@ +From: Alexandru Avadanii <Alexandru.Avadanii@enea.com> +Date: Mon, 23 May 2016 22:06:09 +0200 +Subject: [PATCH] deploy: ipmi adapter: Add <port> config support. + +Sometimes the IPMI lanplus protocol listens on a non-standard +remote port, e.g. when target nodes are interfaced through a +fake IPMI BMC application that listens on multiple ports on the +same IP address. + +Therefore, allow setting IPMI port in the DHA using a new +property named `ipmiPort`, and pass it along to `ipmitool` when set. + +CHANGE: get_access_info now also supports specifying the IPMI +port to use with `ipmitool` by configuring the `ipmiPort` +property in the DHA. + +hp_adapter.py: updated `get_access_info` return signature with +the new (unused there) `ipmiport`. + +Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> +--- + deploy/dha_adapters/hp_adapter.py | 2 +- + deploy/dha_adapters/ipmi_adapter.py | 7 +++++-- + deploy/reap.py | 2 ++ + 3 files changed, 8 insertions(+), 3 deletions(-) + +diff --git a/deploy/dha_adapters/hp_adapter.py b/deploy/dha_adapters/hp_adapter.py +index 13bb349..6434da8 100644 +--- a/deploy/dha_adapters/hp_adapter.py ++++ b/deploy/dha_adapters/hp_adapter.py +@@ -29,7 +29,7 @@ class HpAdapter(IpmiAdapter): + + def node_set_boot_order(self, node_id, boot_order_list): + log('Set boot order %s on Node %s' % (boot_order_list, node_id)) +- ip, username, password = self.get_access_info(node_id) ++ ip, username, password, ipmiport = self.get_access_info(node_id) + ssh = SSHClient(ip, username, password) + with ssh as s: + for order, dev in enumerate(boot_order_list): +diff --git a/deploy/dha_adapters/ipmi_adapter.py b/deploy/dha_adapters/ipmi_adapter.py +index 283bd57..f4f2e6a 100644 +--- a/deploy/dha_adapters/ipmi_adapter.py ++++ b/deploy/dha_adapters/ipmi_adapter.py +@@ -30,12 +30,15 @@ class IpmiAdapter(HardwareAdapter): + ip = self.get_node_property(node_id, 'ipmiIp') + username = self.get_node_property(node_id, 'ipmiUser') + password = self.get_node_property(node_id, 'ipmiPass') +- return ip, username, password ++ ipmiport = self.get_node_property(node_id, 'ipmiPort') ++ return ip, username, password, ipmiport + + def ipmi_cmd(self, node_id): +- ip, username, password = self.get_access_info(node_id) ++ ip, username, password, ipmiport = self.get_access_info(node_id) + cmd = 'ipmitool -I lanplus -A password' + cmd += ' -H %s -U %s -P %s' % (ip, username, password) ++ if ipmiport: ++ cmd += ' -p %d' % int(ipmiport) + return cmd + + def get_node_pxe_mac(self, node_id): +diff --git a/deploy/reap.py b/deploy/reap.py +index 6feaf17..9933d1d 100755 +--- a/deploy/reap.py ++++ b/deploy/reap.py +@@ -59,6 +59,8 @@ adapter: + # ipmiIp + # ipmiUser + # ipmiPass ++# and you *MAY* provide (optional, not added by reap.py): ++# ipmiPort + # - libvirt adapter you need to provide: + # libvirtName: <whatever> + # libvirtTemplate: [libvirt/vms/controller.xml | libvirt/vms/compute.xml] |