Package: openstack-cluster-installer
Version: 42.3.0~bpo12+1
Tags: patch
When provisioning a new node the interface names in
/etc/network/interfaces are set to 'Array' if OCI is unable to find the
correct interface to use. This is due to
get_ethname_from_network_config() returning an array when there is an
error, but the return value is not checked in
slave_install_server_os_command()
I've attached a patch which check for an array and returns it, which
means that the attempt to provision the node will instead fail and
return the error.
--
Regards
Jim
diff --git a/src/inc/slave_actions.php b/src/inc/slave_actions.php
index 910f503f..f1963a53 100644
--- a/src/inc/slave_actions.php
+++ b/src/inc/slave_actions.php
@@ -1105,7 +1105,7 @@ function get_ethname_from_network_config($con, $conf, $machine_id, $iface_in){
$neth = mysqli_num_rows($reth);
if($neth != 1){
$out["status"] = "error";
- $out["message"] = "Cannot find block device: $q<br>";
+ $out["message"] = "Cannot find matching ethernet device for $iface_in";
return $out;
}
$aeth = mysqli_fetch_array($reth);
@@ -1239,6 +1239,7 @@ function slave_install_server_os_command($con, $conf, $machine_id){
}
$iface1 = get_ethname_from_network_config($con, $conf, $machine_id, $mgmt_net["iface1"]);
+ if (is_array($iface1)) { return $iface1; }
$netvlan = $mgmt_net["vlan"];
@@ -1246,6 +1247,7 @@ function slave_install_server_os_command($con, $conf, $machine_id){
if($mgmt_net["iface2"] != "none"){
$iface2 = get_ethname_from_network_config($con, $conf, $machine_id, $mgmt_net["iface2"]);
+ if (is_array($iface2)) { return $iface2; }
if(is_null($netvlan)){
if($cluster["bgp_to_the_host"] == "yes" && $machine["force_no_bgp2host"] == "no"){
$mytype = "bgp";
@@ -1304,9 +1306,11 @@ function slave_install_server_os_command($con, $conf, $machine_id){
}
$iface1 = get_ethname_from_network_config($con, $conf, $machine_id, $onenet["iface1"]);
+ if (is_array($iface1)) { return $iface1; }
if($onenet["iface2"] != "none"){
$iface2 = get_ethname_from_network_config($con, $conf, $machine_id, $onenet["iface2"]);
+ if (is_array($iface2)) { return $iface2; }
if(is_null($netvlan)){
if($cluster["bgp_to_the_host"] == "yes" && $machine["force_no_bgp2host"] == "no"){
$mytype = "bgp";