Refresh servers
Is there a way to refresh the list of available servers while in a project?
For example, if a project is running on Server A and part way through the project it starts Server B, then proceeds to execute steps on Server B. At the time Server A is kicked off, Server B is offline and therefore the selector cannot find Server B.
The way I fix this currently is letting the project on Server A fail part way, going into the server list and testing the connection to Server B (successful) and then restarting the failed project.
For example, if a project is running on Server A and part way through the project it starts Server B, then proceeds to execute steps on Server B. At the time Server A is kicked off, Server B is offline and therefore the selector cannot find Server B.
The way I fix this currently is letting the project on Server A fail part way, going into the server list and testing the connection to Server B (successful) and then restarting the failed project.
One answer
Hi,
If you have access to an agent that is running on the computer with the management console, there is a command line utility named 'bfservertest' located in the <BF_INSTALL_DIR> directory for Windows or <BF_INSTALL_DIR>/Platform directory on Unix.
The utility accepts either the name or UUID of the server. The name of the server is probably more likely known, so I would suspect that is the one to choose. So after the step in which Server B is started, perhaps you must wait for a while (step with .sleep), and then have a step run from the agent on the management console with something like:
Windows: <BF_INSTALL_DIR>/bfservertest.exe Server_B
Unix: <BF_INSTALL_DIR>/Platform/bfservertest Server_B
The output of the command looks like the statements below.
# ./bfservertest Server_B
Subroutine BuildForge::Services::Connection::AF_INET6 redefined at /PerlApp/Exporter.pm line 65.
at (eval 253) line 2
Tue 11 May 2010 11:22:39 PM CDT: Services: 23805: CRRBF1381I: Established connection to Build Forge Services.
Tue 11 May 2010 11:22:39 PM CDT: ServerTest: 23805: CRRBF0364I: Agent Test initiated for server 'Server_B'.
Tue 11 May 2010 11:22:42 PM CDT: ServerTest: 23805: CRRBF0363I: Agent test completed for server 'Server_B', setting error status to 'N'.
If the error status is not set to 'N', then there was a problem with the server test (in case you wanted to add a log filter to see if the test was successful).
If this doesn't work for you, there is also the option of using the services layer APIs with a Perl script/Java program that could do the server test, but that will require a bit more set up (ex. having services layer APIs, setting classpath, creating user under which script runs, etc).
- bju
If you have access to an agent that is running on the computer with the management console, there is a command line utility named 'bfservertest' located in the <BF_INSTALL_DIR> directory for Windows or <BF_INSTALL_DIR>/Platform directory on Unix.
The utility accepts either the name or UUID of the server. The name of the server is probably more likely known, so I would suspect that is the one to choose. So after the step in which Server B is started, perhaps you must wait for a while (step with .sleep), and then have a step run from the agent on the management console with something like:
Windows: <BF_INSTALL_DIR>/bfservertest.exe Server_B
Unix: <BF_INSTALL_DIR>/Platform/bfservertest Server_B
The output of the command looks like the statements below.
# ./bfservertest Server_B
Subroutine BuildForge::Services::Connection::AF_INET6 redefined at /PerlApp/Exporter.pm line 65.
at (eval 253) line 2
Tue 11 May 2010 11:22:39 PM CDT: Services: 23805: CRRBF1381I: Established connection to Build Forge Services.
Tue 11 May 2010 11:22:39 PM CDT: ServerTest: 23805: CRRBF0364I: Agent Test initiated for server 'Server_B'.
Tue 11 May 2010 11:22:42 PM CDT: ServerTest: 23805: CRRBF0363I: Agent test completed for server 'Server_B', setting error status to 'N'.
If the error status is not set to 'N', then there was a problem with the server test (in case you wanted to add a log filter to see if the test was successful).
If this doesn't work for you, there is also the option of using the services layer APIs with a Perl script/Java program that could do the server test, but that will require a bit more set up (ex. having services layer APIs, setting classpath, creating user under which script runs, etc).
- bju