Return valid values for undefined mdbci variables
If a variable is not defined in the network configuration, a valid value is returned.
This commit is contained in:
@ -322,11 +322,11 @@ int Nodes::read_basic_env()
|
|||||||
{
|
{
|
||||||
// reading IPs
|
// reading IPs
|
||||||
sprintf(env_name, "%s_%03d_network", prefix, i);
|
sprintf(env_name, "%s_%03d_network", prefix, i);
|
||||||
IP[i] = get_nc_item((char*) env_name);
|
IP[i] = strdup(get_nc_item(env_name).c_str());
|
||||||
|
|
||||||
// reading private IPs
|
// reading private IPs
|
||||||
sprintf(env_name, "%s_%03d_private_ip", prefix, i);
|
sprintf(env_name, "%s_%03d_private_ip", prefix, i);
|
||||||
IP_private[i] = get_nc_item((char*) env_name);
|
IP_private[i] = strdup(get_nc_item(env_name).c_str());
|
||||||
if (IP_private[i] == NULL)
|
if (IP_private[i] == NULL)
|
||||||
{
|
{
|
||||||
IP_private[i] = IP[i];
|
IP_private[i] = IP[i];
|
||||||
@ -335,7 +335,7 @@ int Nodes::read_basic_env()
|
|||||||
|
|
||||||
// reading IPv6
|
// reading IPv6
|
||||||
sprintf(env_name, "%s_%03d_network6", prefix, i);
|
sprintf(env_name, "%s_%03d_network6", prefix, i);
|
||||||
IP6[i] = get_nc_item((char*) env_name);
|
IP6[i] = strdup(get_nc_item(env_name).c_str());
|
||||||
if (IP6[i] == NULL)
|
if (IP6[i] == NULL)
|
||||||
{
|
{
|
||||||
IP6[i] = IP[i];
|
IP6[i] = IP[i];
|
||||||
@ -344,11 +344,11 @@ int Nodes::read_basic_env()
|
|||||||
|
|
||||||
//reading sshkey
|
//reading sshkey
|
||||||
sprintf(env_name, "%s_%03d_keyfile", prefix, i);
|
sprintf(env_name, "%s_%03d_keyfile", prefix, i);
|
||||||
sshkey[i] = get_nc_item((char*) env_name);
|
sshkey[i] = strdup(get_nc_item(env_name).c_str());
|
||||||
|
|
||||||
|
|
||||||
sprintf(env_name, "%s_%03d_whoami", prefix, i);
|
sprintf(env_name, "%s_%03d_whoami", prefix, i);
|
||||||
access_user[i] = get_nc_item((char*) env_name);
|
access_user[i] = strdup(get_nc_item(env_name).c_str());
|
||||||
if (access_user[i] == NULL)
|
if (access_user[i] == NULL)
|
||||||
{
|
{
|
||||||
access_user[i] = (char *) "vagrant";
|
access_user[i] = (char *) "vagrant";
|
||||||
@ -369,7 +369,7 @@ int Nodes::read_basic_env()
|
|||||||
}
|
}
|
||||||
|
|
||||||
sprintf(env_name, "%s_%03d_hostname", prefix, i);
|
sprintf(env_name, "%s_%03d_hostname", prefix, i);
|
||||||
hostname[i] = get_nc_item((char*) env_name);
|
hostname[i] = strdup(get_nc_item(env_name).c_str());
|
||||||
if (hostname[i] == NULL)
|
if (hostname[i] == NULL)
|
||||||
{
|
{
|
||||||
hostname[i] = IP[i];
|
hostname[i] = IP[i];
|
||||||
@ -396,13 +396,14 @@ const char* Nodes::ip(int i) const
|
|||||||
return use_ipv6 ? IP6[i] : IP[i];
|
return use_ipv6 ? IP6[i] : IP[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
char * Nodes::get_nc_item(char * item_name)
|
std::string Nodes::get_nc_item(const char* item_name)
|
||||||
{
|
{
|
||||||
size_t start = network_config.find(item_name);
|
size_t start = network_config.find(item_name);
|
||||||
if (start == std::string::npos)
|
if (start == std::string::npos)
|
||||||
{
|
{
|
||||||
return NULL;
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t end = network_config.find("\n", start);
|
size_t end = network_config.find("\n", start);
|
||||||
size_t equal = network_config.find("=", start);
|
size_t equal = network_config.find("=", start);
|
||||||
if (end == std::string::npos)
|
if (end == std::string::npos)
|
||||||
@ -411,14 +412,14 @@ char * Nodes::get_nc_item(char * item_name)
|
|||||||
}
|
}
|
||||||
if (equal == std::string::npos)
|
if (equal == std::string::npos)
|
||||||
{
|
{
|
||||||
return NULL;
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
char * cstr = new char [end - equal + 1];
|
std::string str = network_config.substr(equal + 1, end - equal - 1);
|
||||||
strcpy(cstr, network_config.substr(equal + 1, end - equal - 1).c_str());
|
|
||||||
setenv(item_name, cstr, 1);
|
|
||||||
|
|
||||||
return (cstr);
|
setenv(item_name, str.c_str(), 1);
|
||||||
|
|
||||||
|
return str;
|
||||||
}
|
}
|
||||||
|
|
||||||
int Nodes::get_N()
|
int Nodes::get_N()
|
||||||
|
|||||||
@ -181,9 +181,9 @@ public:
|
|||||||
/**
|
/**
|
||||||
* @brief get_nc_item Find variable in the MDBCI network_config file
|
* @brief get_nc_item Find variable in the MDBCI network_config file
|
||||||
* @param item_name Name of the variable
|
* @param item_name Name of the variable
|
||||||
* @return value of variable
|
* @return value of variable or empty value if not found
|
||||||
*/
|
*/
|
||||||
char *get_nc_item(char * item_name);
|
std::string get_nc_item(const char* item_name);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief get_N Calculate the number of nodes discribed in the _netoek_config file
|
* @brief get_N Calculate the number of nodes discribed in the _netoek_config file
|
||||||
|
|||||||
Reference in New Issue
Block a user