Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 11 additions & 1 deletion src/resmom/mom_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,7 @@ char *path_undeliv;
char *path_aux;
char *path_home = (char *)PBS_SERVER_HOME;
char *mom_home;
char mom_ipaddr[INET_ADDRSTRLEN];

bool use_path_home = false;

Expand Down Expand Up @@ -1645,7 +1646,8 @@ void add_diag_header(

{
output << "\nHost: " << mom_short_name << "/" << mom_host << " Version: ";
output << PACKAGE_VERSION << " PID: " << getpid() << "\n";
output << PACKAGE_VERSION << " IP address: " << mom_ipaddr;
output << " PID: " << getpid() << "\n";
} /* END add_diag_header() */


Expand Down Expand Up @@ -4897,6 +4899,8 @@ int setup_program_environment(void)
char *ptr; /* local tmp variable */
int network_retries = 0;

struct sockaddr_in network_addr;

/* must be started with real and effective uid of 0 */
if (IamRoot() == 0)
{
Expand Down Expand Up @@ -5075,6 +5079,12 @@ int setup_program_environment(void)
hostc = 1;
}

// Get external IP address of local node
if (get_local_address(network_addr) == 0)
{
inet_ntop(AF_INET, &(network_addr.sin_addr), mom_ipaddr, INET_ADDRSTRLEN);
}

if (!multi_mom)
{
log_init(NULL, mom_host);
Expand Down
5 changes: 5 additions & 0 deletions src/test/mom_main/scaffolding.c
Original file line number Diff line number Diff line change
Expand Up @@ -1146,3 +1146,8 @@ int read_all_devices()
bool get_cray_taskstats;

void read_rur_stats_file(const char *basepath) {}

int get_local_address(struct sockaddr_in &new_sockaddr)
{
return PBSE_NONE;
}
27 changes: 27 additions & 0 deletions src/test/mom_main/test_uut.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ int process_layout_request(tcp_chan *chan);
bool should_resend_obit(job *pjob, int diff);
void check_job_in_mom_wait(job *pjob);
void evaluate_job_in_prerun(job *pjob);
void add_diag_header(std::stringstream &output);

extern attribute_def job_attr_def[];
extern int exiting_tasks;
Expand All @@ -47,6 +48,10 @@ extern int flush_ret;
extern int job_bailed;
extern bool am_i_ms;

extern char mom_host[PBS_MAXHOSTNAME + 1];
extern char mom_short_name[PBS_MAXHOSTNAME + 1];
extern char mom_ipaddr[INET_ADDRSTRLEN];

bool are_we_forking()

{
Expand Down Expand Up @@ -450,6 +455,24 @@ START_TEST(test_parse_command_line3)
END_TEST


START_TEST(test_add_diag_header)
{
std::stringstream output;
std::string output_str;

mom_ipaddr[0] = '\0';
mom_short_name[0] = '\0';
mom_host[0] = '\0';

add_diag_header(output);

output_str = output.str();

fail_unless(output_str.find("IP address") != std::string::npos);
}
END_TEST


Suite *mom_main_suite(void)
{
Suite *s = suite_create("mom_main_suite methods");
Expand Down Expand Up @@ -486,6 +509,10 @@ Suite *mom_main_suite(void)
tcase_add_test(tc_core, test_parse_command_line3);
suite_add_tcase(s, tc_core);

tc_core = tcase_create("test_add_diag_header");
tcase_add_test(tc_core, test_add_diag_header);
suite_add_tcase(s, tc_core);

return s;
}

Expand Down