version 1.3.24.2, 2007/09/28 15:31:43
|
version 1.4, 2007/02/13 18:55:28
|
|
|
// | // |
//============================================================================== | //============================================================================== |
// | // |
// Author: John Alex |
|
// |
|
// Modified By: |
|
// |
|
//%///////////////////////////////////////////////////////////////////////////// | //%///////////////////////////////////////////////////////////////////////////// |
| |
#include <iostream> | #include <iostream> |
|
|
// | // |
// Set up tables for client properties. | // Set up tables for client properties. |
// | // |
_clientTable = new Table[Total_Clients]; |
_clientTable.reset(new Table[Total_Clients]); |
|
|
// |
|
// Allocate one table to collect all the common properties Thy use AutoPtr |
|
// |
|
_propertyTable = new Table; |
|
|
|
// |
|
// Client Information |
|
// |
|
_clientCommands = 0; |
|
_clientDurations = 0; |
|
_clientDelays = 0; |
|
| |
// | // |
// Get environment variables: | // Get environment variables: |
|
|
} | } |
_hostName = getOpts [i].Value (); | _hostName = getOpts [i].Value (); |
_hostNameSpecified = true; | _hostNameSpecified = true; |
if (!_propertyTable->insert("hostname", _hostName)) |
if (!_propertyTable.insert("hostname", _hostName)) |
{ | { |
// shouldn't get here | // shouldn't get here |
if(verboseEnabled) | if(verboseEnabled) |
|
|
throw e; | throw e; |
} | } |
_portNumberSpecified = true; | _portNumberSpecified = true; |
if (!_propertyTable->insert("port", _portNumberStr)) |
if (!_propertyTable.insert("port", _portNumberStr)) |
{ | { |
if(verboseEnabled) | if(verboseEnabled) |
{ | { |
|
|
{ | { |
_portNumber = 5989; | _portNumber = 5989; |
_portNumberStr = "5989"; | _portNumberStr = "5989"; |
if (!_propertyTable->insert("port", _portNumberStr)) |
if (!_propertyTable.insert("port", _portNumberStr)) |
{ | { |
if(verboseEnabled) | if(verboseEnabled) |
{ | { |
|
|
} | } |
} | } |
} | } |
if (!_propertyTable->insert("ssl", "")) |
if (!_propertyTable.insert("ssl", "")) |
{ | { |
if(verboseEnabled) | if(verboseEnabled) |
{ | { |
|
|
} | } |
_userName = getOpts[i].Value(); | _userName = getOpts[i].Value(); |
_userNameSpecified = true; | _userNameSpecified = true; |
if (!_propertyTable->insert("username", _userName)) |
if (!_propertyTable.insert("username", _userName)) |
{ | { |
if(verboseEnabled) | if(verboseEnabled) |
{ | { |
|
|
} | } |
_password = getOpts[i].Value(); | _password = getOpts[i].Value(); |
_passwordSpecified = true; | _passwordSpecified = true; |
if (!_propertyTable->insert("password", _password)) |
if (!_propertyTable.insert("password", _password)) |
{ | { |
if(verboseEnabled) | if(verboseEnabled) |
{ | { |
|
|
// | // |
// Array's to store client specific information | // Array's to store client specific information |
// | // |
_clientCommands = new String[_clientCount]; |
_clientCommands.reset(new String[_clientCount]); |
_clientDurations = new Uint64[_clientCount]; |
_clientDurations.reset(new Uint64[_clientCount]); |
_clientDelays = new Uint64[_clientCount]; |
_clientDelays.reset(new Uint64[_clientCount]); |
| |
// | // |
// Retrieve all the client options from the client table | // Retrieve all the client options from the client table |
|
|
// | // |
// Stress Client Name must exist for each client/client table | // Stress Client Name must exist for each client/client table |
// | // |
if (!_clientTable[j].lookup(NAME, clientName)) |
if (!_clientTable.get()[j].lookup(NAME, clientName)) |
{ | { |
log_file<<StressTestControllerCommand::COMMAND_NAME<< | log_file<<StressTestControllerCommand::COMMAND_NAME<< |
"::Required property NAME not found."<<endl; | "::Required property NAME not found."<<endl; |
|
|
// | // |
// Generate the commands for each client from each client table. | // Generate the commands for each client from each client table. |
// | // |
for (Table::Iterator i = _clientTable[j].start(); i; i++) |
for (Table::Iterator i = _clientTable.get()[j].start(); i; i++) |
{ | { |
if (String::equalNoCase(i.key(),HOSTNAME)) | if (String::equalNoCase(i.key(),HOSTNAME)) |
{ | { |
|
|
// from config file and include it as part of the client command | // from config file and include it as part of the client command |
// as required. | // as required. |
// | // |
for (Table::Iterator k = _propertyTable->start(); k; k++) |
for (Table::Iterator k = _propertyTable.start(); k; k++) |
{ | { |
String propertyValue = String::EMPTY; | String propertyValue = String::EMPTY; |
// | // |
// Only include the common properties that are not already | // Only include the common properties that are not already |
// listed for the clients. | // listed for the clients. |
// | // |
if (!_clientTable[j].lookup(k.key(), propertyValue)) |
if (!_clientTable.get()[j].lookup(k.key(), propertyValue)) |
{ | { |
// | // |
// Include options other than ToleranceLevel | // Include options other than ToleranceLevel |
|
|
{ | { |
duration = _duration; | duration = _duration; |
} | } |
} /* for (Table::Iterator k = _propertyTable->start(); k; k++) */ |
} /* for (Table::Iterator k = _propertyTable.start(); k; k++) */ |
| |
// | // |
// Looking up table while ignoring cases for Client Duration/Wait. | // Looking up table while ignoring cases for Client Duration/Wait. |
// | // |
for (Table::Iterator k = _clientTable[j].start(); k; k++) |
for (Table::Iterator k = _clientTable.get()[j].start(); k; k++) |
{ | { |
// | // |
// Overwrite duration if client duration set | // Overwrite duration if client duration set |
|
|
// Save the generated command to corresponding element in the | // Save the generated command to corresponding element in the |
// clientCommand array. | // clientCommand array. |
// | // |
_clientCommands[j] = client_command; |
_clientCommands.get()[j] = client_command; |
| |
// | // |
// Converting minutes to milliseconds | // Converting minutes to milliseconds |
// | // |
_clientDurations[j] = (Uint64)convertmin2millisecs(duration); |
_clientDurations.get()[j] = (Uint64)convertmin2millisecs(duration); |
_clientDelays[j] = (Uint64)convertmin2millisecs(delay); |
_clientDelays.get()[j] = (Uint64)convertmin2millisecs(delay); |
| |
// | // |
// Saving logs | // Saving logs |
// | // |
log_file<<StressTestControllerCommand::COMMAND_NAME<< | log_file<<StressTestControllerCommand::COMMAND_NAME<< |
"::Client Command["; |
"::Client Command[" << j << "]" << endl; |
log_file<<j<<"]"<<endl; |
log_file << " " << _clientCommands.get()[j] << endl; |
log_file<<" "<<_clientCommands[j]<<endl; |
|
log_file<<" Client Duration: "<< | log_file<<" Client Duration: "<< |
convertUint64toString(_clientDurations[j])<<endl; |
convertUint64toString(_clientDurations.get()[j]) << endl; |
log_file<< |
log_file << " Client Delay: " << |
" Client Delay: "<<convertUint64toString(_clientDelays[j])<<endl; |
convertUint64toString(_clientDelays.get()[j]) << endl; |
| |
// | // |
// Verbose | // Verbose |
// | // |
if (verboseEnabled) | if (verboseEnabled) |
{ | { |
cout<< |
cout << StressTestControllerCommand::COMMAND_NAME << |
StressTestControllerCommand::COMMAND_NAME<<"::Client Command["; |
"::Client Command[" << j << "]" << endl; |
cout<<j<<"]"<<endl; |
cout << " " << _clientCommands.get()[j] << endl; |
cout<<" "<<_clientCommands[j]<<endl; |
|
cout<<" Client Duration: "<< | cout<<" Client Duration: "<< |
convertUint64toString(_clientDurations[j])<<endl; |
convertUint64toString(_clientDurations.get()[j]) << endl; |
cout<<" Client Delay: "<<convertUint64toString(_clientDelays[j])<< |
cout << " Client Delay: " << |
endl; |
convertUint64toString(_clientDelays.get()[j]) << endl; |
} | } |
} /* for(Uint32 j=0; j< _clientCount; j++) */ | } /* for(Uint32 j=0; j< _clientCount; j++) */ |
return true; | return true; |
|
|
ostream& outPrintWriter, | ostream& outPrintWriter, |
ostream& errPrintWriter) | ostream& errPrintWriter) |
{ | { |
|
|
int actual_client = 0; | int actual_client = 0; |
Uint64 startMilliseconds = 0; | Uint64 startMilliseconds = 0; |
Uint64 nowMilliseconds = 0; | Uint64 nowMilliseconds = 0; |
Uint64 stopMilliseconds = 0; | Uint64 stopMilliseconds = 0; |
Uint64 timeoutMilliseconds = 0; | Uint64 timeoutMilliseconds = 0; |
Uint64 *clientStartMilliseconds = 0; |
AutoArrayPtr<Uint64> clientStartMilliseconds; |
Uint64 *clientStopMilliseconds = 0; |
AutoArrayPtr<Uint64> clientStopMilliseconds; |
Uint64 *clientDelayMilliseconds = 0; |
AutoArrayPtr<Uint64> clientDelayMilliseconds; |
Boolean *clientStopped = 0; |
AutoArrayPtr<Boolean> clientStopped; |
Boolean *clientDelayed = 0; |
AutoArrayPtr<Boolean> clientDelayed; |
String act_command = String::EMPTY; |
String act_command; |
Boolean TestFailed = false; | Boolean TestFailed = false; |
char str[15]; | char str[15]; |
char strTime[256]; | char strTime[256]; |
struct tm tmTime; | struct tm tmTime; |
| |
|
|
|
|
// | // |
// log file | // log file |
// | // |
|
|
if(_clientCount > 0) | if(_clientCount > 0) |
{ | { |
clientInstance = new int[_clientCount]; | clientInstance = new int[_clientCount]; |
clientStartMilliseconds = new Uint64[_clientCount]; |
clientStartMilliseconds.reset(new Uint64[_clientCount]); |
clientStopMilliseconds = new Uint64[_clientCount]; |
clientStopMilliseconds.reset(new Uint64[_clientCount]); |
clientDelayMilliseconds = new Uint64[_clientCount]; |
clientDelayMilliseconds.reset(new Uint64[_clientCount]); |
clientStopped = new Boolean[_clientCount]; |
clientStopped.reset(new Boolean[_clientCount]); |
clientDelayed = new Boolean[_clientCount]; |
clientDelayed.reset(new Boolean[_clientCount]); |
} | } |
else | else |
{ | { |
|
|
// | // |
for (Uint32 i=0;i<_clientCount;i++) | for (Uint32 i=0;i<_clientCount;i++) |
{ | { |
clientStopped[i] = false; |
clientStopped.get()[i] = false; |
clientDelayed[i] = false; |
clientDelayed.get()[i] = false; |
} | } |
// | // |
// Set up duration of the tests | // Set up duration of the tests |
|
|
// | // |
// Acquire the client Instance for each clients | // Acquire the client Instance for each clients |
// | // |
if (!_clientTable[j].lookup(INSTANCE, clientInst)) |
if (!_clientTable.get()[j].lookup(INSTANCE, clientInst)) |
{ | { |
String ErrReport = String("Invalid Property Value: "); | String ErrReport = String("Invalid Property Value: "); |
ErrReport.append(INSTANCE); | ErrReport.append(INSTANCE); |
|
|
// | // |
// Acquire and set client specific duration | // Acquire and set client specific duration |
// | // |
clientStartMilliseconds[j] = |
clientStartMilliseconds.get()[j] = |
TimeValue::getCurrentTime().toMilliseconds(); | TimeValue::getCurrentTime().toMilliseconds(); |
clientStopMilliseconds[j] = |
clientStopMilliseconds.get()[j] = |
clientStartMilliseconds[j] + _clientDurations[j]; |
clientStartMilliseconds.get()[j] + |
|
_clientDurations.get()[j]; |
| |
// | // |
// for verbose only | // for verbose only |
|
|
outPrintWriter<<"Client:"<<"["<<j<<"]"<<endl; | outPrintWriter<<"Client:"<<"["<<j<<"]"<<endl; |
log_file<<"Client:"<<"["<<j<<"]"<<endl; | log_file<<"Client:"<<"["<<j<<"]"<<endl; |
outPrintWriter<<"ClientStart:"<< | outPrintWriter<<"ClientStart:"<< |
convertUint64toString(clientStartMilliseconds[j])<< |
convertUint64toString( |
|
clientStartMilliseconds.get()[j]) << |
endl; | endl; |
outPrintWriter<<"ClientStop:"<< | outPrintWriter<<"ClientStop:"<< |
convertUint64toString(clientStopMilliseconds[j])<< |
convertUint64toString( |
|
clientStopMilliseconds.get()[j]) << |
endl; | endl; |
outPrintWriter<<"ClientDuration:"<< | outPrintWriter<<"ClientDuration:"<< |
convertUint64toString(_clientDurations[j])<<endl; |
convertUint64toString(_clientDurations.get()[j]) << |
|
endl; |
log_file<<"ClientStart:"<< | log_file<<"ClientStart:"<< |
convertUint64toString(clientStartMilliseconds[j])<< |
convertUint64toString( |
|
clientStartMilliseconds.get()[j]) << |
endl; | endl; |
log_file<<"ClientStop:"<< | log_file<<"ClientStop:"<< |
convertUint64toString(clientStopMilliseconds[j])<< |
convertUint64toString( |
|
clientStopMilliseconds.get()[j]) << |
|
endl; |
|
log_file << "ClientDuration:" << |
|
convertUint64toString(_clientDurations.get()[j]) << |
endl; | endl; |
log_file<< |
|
"ClientDuration:"<< |
|
convertUint64toString(_clientDurations[j])<<endl; |
|
} | } |
log_file<< | log_file<< |
"Number of instances of this client: "<< | "Number of instances of this client: "<< |
|
|
// | // |
// Adding all the required parameters for the command. | // Adding all the required parameters for the command. |
// | // |
act_command.append(_clientCommands[j].getCString()); |
act_command.append(_clientCommands.get()[j]); |
act_command.append(" -clientid "); | act_command.append(" -clientid "); |
sprintf(str,"%d",actual_client); | sprintf(str,"%d",actual_client); |
act_command.append(str); | act_command.append(str); |
|
|
// | // |
// Stop only running clients as required. | // Stop only running clients as required. |
// | // |
if (!clientStopped[clientID]) |
if (!clientStopped.get()[clientID]) |
{ | { |
// | // |
// If Client's duration is up | // If Client's duration is up |
// | // |
if (clientStopMilliseconds[clientID]<= nowMilliseconds) |
if (clientStopMilliseconds.get()[clientID] <= |
|
nowMilliseconds) |
{ | { |
// | // |
// Stop all the instances of this client | // Stop all the instances of this client |
|
|
// | // |
// indicate that the client was stopped. | // indicate that the client was stopped. |
// | // |
clientStopped[clientID] = true; |
clientStopped.get()[clientID] = true; |
// | // |
// If the Client has a Wait time | // If the Client has a Wait time |
// | // |
if (_clientDelays[clientID] !=0) |
if (_clientDelays.get()[clientID] !=0) |
{ | { |
clientDelayMilliseconds[clientID] = |
clientDelayMilliseconds.get()[clientID] = |
nowMilliseconds + _clientDelays[clientID]; |
nowMilliseconds + |
clientDelayed[clientID] = true; |
_clientDelays.get()[clientID]; |
|
clientDelayed.get()[clientID] = true; |
} | } |
} /* if (clientStopMilliseconds[clientID]<= nowMilli..*/ | } /* if (clientStopMilliseconds[clientID]<= nowMilli..*/ |
} /* if (!clientStopped[clientID]) */ |
} /* if (!clientStopped.get()[clientID]) */ |
else | else |
{ | { |
// | // |
// Only restart clients that are waiting. | // Only restart clients that are waiting. |
// | // |
if (clientDelayed[clientID]) |
if (clientDelayed.get()[clientID]) |
{ | { |
// | // |
// When waiting period is consumed. | // When waiting period is consumed. |
// | // |
if (clientDelayMilliseconds[clientID]<= |
if (clientDelayMilliseconds.get()[clientID] <= |
nowMilliseconds) | nowMilliseconds) |
{ | { |
// | // |
|
|
act_command.append("start "); | act_command.append("start "); |
#endif | #endif |
act_command.append( | act_command.append( |
_clientCommands[clientID].getCString()); |
_clientCommands.get()[clientID]); |
act_command.append(" -clientid "); | act_command.append(" -clientid "); |
sprintf(str,"%d",clientID+instanceID); | sprintf(str,"%d",clientID+instanceID); |
act_command.append(str); | act_command.append(str); |
act_command.append(" -pidfile "); | act_command.append(" -pidfile "); |
act_command.append(" \""); | act_command.append(" \""); |
act_command.append(_stressTestClientPIDFile); |
act_command.append( |
|
_stressTestClientPIDFile); |
act_command.append("\""); | act_command.append("\""); |
act_command.append(" -clientlog"); | act_command.append(" -clientlog"); |
act_command.append(" \""); | act_command.append(" \""); |
act_command.append(_stressTestClientLogFile); |
act_command.append( |
|
_stressTestClientLogFile); |
act_command.append("\""); | act_command.append("\""); |
act_command.append("&"); | act_command.append("&"); |
log_file<<"Restarting client:("<< | log_file<<"Restarting client:("<< |
|
|
} | } |
clientActive[clientID+instanceID] = true; | clientActive[clientID+instanceID] = true; |
} /* for (int instanceID =0;instanceID .. */ | } /* for (int instanceID =0;instanceID .. */ |
clientStopMilliseconds[clientID] = |
clientStopMilliseconds.get()[clientID] = |
nowMilliseconds + | nowMilliseconds + |
_clientDurations[clientID]; |
_clientDurations.get()[clientID]; |
clientStopped[clientID] = false; |
clientStopped.get()[clientID] = false; |
clientDelayed[clientID] = false; |
clientDelayed.get()[clientID] = false; |
}/* if(clientDelayMilliseconds[clientID]<=nowMi.. */ | }/* if(clientDelayMilliseconds[clientID]<=nowMi.. */ |
} /* if(clientDelayed[clientID]) */ |
} /* if(clientDelayed.get()[clientID]) */ |
} /* else ..*/ | } /* else ..*/ |
} /* for(Uint32 clientID=0;clientID < _clientCount;clientID++)*/ | } /* for(Uint32 clientID=0;clientID < _clientCount;clientID++)*/ |
} /* else for if(!actual_client) */ | } /* else for if(!actual_client) */ |
|
|
{ | { |
cout<<" "<<name<<"\t= "<<value<<endl; | cout<<" "<<name<<"\t= "<<value<<endl; |
} | } |
if (!_propertyTable->insert(name, value)) |
if (!_propertyTable.insert(name, value)) |
{ | { |
// | // |
// Duplicate property, ignore the new property value. | // Duplicate property, ignore the new property value. |
|
|
cout<<StressTestControllerCommand::COMMAND_NAME<< | cout<<StressTestControllerCommand::COMMAND_NAME<< |
"::Common Properties:"<<endl; | "::Common Properties:"<<endl; |
} | } |
for (Table::Iterator i = _propertyTable->start(); i; i++) |
for (Table::Iterator i = _propertyTable.start(); i; i++) |
{ | { |
log_file<<" "<<i.key()<<"\t= "<<i.value()<<endl; | log_file<<" "<<i.key()<<"\t= "<<i.value()<<endl; |
if (verboseEnabled) | if (verboseEnabled) |
|
|
{ | { |
cout<<"Client("<<j<<")"<<endl; | cout<<"Client("<<j<<")"<<endl; |
} | } |
for (Table::Iterator i = _clientTable[j].start(); i; i++) |
for (Table::Iterator i = _clientTable.get()[j].start(); i; i++) |
{ | { |
log_file<<" "<<i.key()<<" = "<<i.value()<<endl; | log_file<<" "<<i.key()<<" = "<<i.value()<<endl; |
if (verboseEnabled) | if (verboseEnabled) |
|
|
- "]" indicates end of client options. | - "]" indicates end of client options. |
- Client properties and values are seperated by commas. | - Client properties and values are seperated by commas. |
Example: | Example: |
[clientName=cimcli,Options=niall] |
[clientName=CLI,Options=niall] |
- This method will throw appropriate exceptions. | - This method will throw appropriate exceptions. |
| |
@param p The pointer to the char in the concerned line | @param p The pointer to the char in the concerned line |
|
|
} | } |
if (!(isalpha(*p) || *p == '_')) | if (!(isalpha(*p) || *p == '_')) |
{ | { |
throw StressTestControllerException |
throw StressTestControllerException( |
(StressTestControllerException::INVALID_OPTION); |
StressTestControllerException::INVALID_OPTION); |
} | } |
| |
name.append(*p++); | name.append(*p++); |
|
|
// | // |
if (*p != '=') | if (*p != '=') |
{ | { |
throw StressTestControllerException |
throw StressTestControllerException( |
(StressTestControllerException::INVALID_OPERATOR); |
StressTestControllerException::INVALID_OPERATOR); |
} | } |
| |
p++; | p++; |
|
|
| |
if(*p !=']' && *p != ',') | if(*p !=']' && *p != ',') |
{ | { |
throw StressTestControllerException |
throw StressTestControllerException( |
(StressTestControllerException::MISSING_BRACE); |
StressTestControllerException::MISSING_BRACE); |
} | } |
if(value == String::EMPTY) | if(value == String::EMPTY) |
{ | { |
throw StressTestControllerException |
throw StressTestControllerException( |
(StressTestControllerException::MISSING_VALUE); |
StressTestControllerException::MISSING_VALUE); |
} | } |
| |
#ifdef STRESSTEST_DEBUG | #ifdef STRESSTEST_DEBUG |
|
|
// | // |
// Save client property in client table if valid. | // Save client property in client table if valid. |
// | // |
if (!_clientTable[_currClientCount].insert(name,value)) |
if (!_clientTable.get()[_currClientCount].insert(name,value)) |
{ | { |
// | // |
// Duplicate property, ignore the new property value. | // Duplicate property, ignore the new property value. |
|
|
- "[" indicates start of client options. | - "[" indicates start of client options. |
- Client properties and values are seperated by commas. | - Client properties and values are seperated by commas. |
Example: | Example: |
[clientName=cimcli,Options=niall] |
[clientName=CLI,Options=niall] |
| |
@param line The line that will be parsed. | @param line The line that will be parsed. |
@parm lineNumber The line number of the line. | @parm lineNumber The line number of the line. |
|
|
Table* tempClientTable = new Table[Total_Clients]; | Table* tempClientTable = new Table[Total_Clients]; |
for (Uint32 i =0;i<_clientCount;i++) | for (Uint32 i =0;i<_clientCount;i++) |
{ | { |
tempClientTable[i] = _clientTable[i]; |
tempClientTable[i] = _clientTable.get()[i]; |
} | } |
delete [] _clientTable; |
_clientTable.reset(tempClientTable); |
_clientTable = tempClientTable; |
|
} | } |
| |
// | // |
// Store the client Name in the table | // Store the client Name in the table |
// | // |
if (!_clientTable[_clientCount].insert(NAME, name)) |
if (!_clientTable.get()[_clientCount].insert(NAME, name)) |
{ | { |
// | // |
// Duplicate property, ignore the new property value. | // Duplicate property, ignore the new property value. |
|
|
// | // |
// Store the number of instances for the client in the table | // Store the number of instances for the client in the table |
// | // |
if (!_clientTable[_clientCount].insert(INSTANCE, value)) |
if (!_clientTable.get()[_clientCount].insert(INSTANCE, value)) |
{ | { |
| |
// | // |
|
|
// | // |
// Adding the default instance value to each client table | // Adding the default instance value to each client table |
// | // |
if (!_clientTable[i].insert(INSTANCE, DEFAULT_INSTANCE)) |
if (!_clientTable.get()[i].insert(INSTANCE, DEFAULT_INSTANCE)) |
{ | { |
log_file << "Duplicate name already saved: "<<INSTANCE<<endl; | log_file << "Duplicate name already saved: "<<INSTANCE<<endl; |
if (verboseEnabled) | if (verboseEnabled) |
|
|
{ | { |
case 0: | case 0: |
{ | { |
if (!_clientTable[i].insert(NAME, MODELWALK_CLIENT)) |
if (!_clientTable.get()[i].insert(NAME, MODELWALK_CLIENT)) |
{ | { |
log_file << "Duplicate name already saved: "<<NAME<<endl; | log_file << "Duplicate name already saved: "<<NAME<<endl; |
if (verboseEnabled) | if (verboseEnabled) |
|
|
cout<< "Duplicate name already saved: "<<NAME<<endl; | cout<< "Duplicate name already saved: "<<NAME<<endl; |
} | } |
} | } |
log_file << "Stress Test Client Name:"<<MODELWALK_CLIENT<< endl; |
log_file << "Stress Test Client Name:" << MODELWALK_CLIENT << |
|
endl; |
if (verboseEnabled) | if (verboseEnabled) |
{ | { |
cout<< "Stress Test Client Name:"<<MODELWALK_CLIENT<< endl; | cout<< "Stress Test Client Name:"<<MODELWALK_CLIENT<< endl; |
|
|
} | } |
case 1: | case 1: |
{ | { |
if (!_clientTable[i].insert(NAME, WRAPPER_CLIENT)) |
if (!_clientTable.get()[i].insert(NAME, WRAPPER_CLIENT)) |
{ | { |
log_file << "Duplicate name already saved: "<<NAME<<endl; | log_file << "Duplicate name already saved: "<<NAME<<endl; |
if (verboseEnabled) | if (verboseEnabled) |
|
|
{ | { |
cout << "Stress Test Client Name:" <<WRAPPER_CLIENT<< endl; | cout << "Stress Test Client Name:" <<WRAPPER_CLIENT<< endl; |
} | } |
if (!_clientTable[i].insert(CLIENTNAME, "cimcli")) |
if (!_clientTable.get()[i].insert(CLIENTNAME, "CLI")) |
{ | { |
log_file<< "Duplicate name already saved: "<< | log_file<< "Duplicate name already saved: "<< |
CLIENTNAME<<endl; | CLIENTNAME<<endl; |
|
|
CLIENTNAME<<endl; | CLIENTNAME<<endl; |
} | } |
} | } |
if (!_clientTable[i].insert(OPTIONS, "niall")) |
if (!_clientTable.get()[i].insert(OPTIONS, "niall")) |
{ | { |
log_file<< "Duplicate name already saved: "<<OPTIONS<<endl; | log_file<< "Duplicate name already saved: "<<OPTIONS<<endl; |
if (verboseEnabled) | if (verboseEnabled) |
|
|
cout<< "Duplicate name already saved: "<<OPTIONS<<endl; | cout<< "Duplicate name already saved: "<<OPTIONS<<endl; |
} | } |
} | } |
log_file<< " Client Command & options: cimcli niall"<< |
log_file<< " Client Command & options: CLI niall"<< |
endl; | endl; |
if (verboseEnabled) | if (verboseEnabled) |
{ | { |
cout<< " Client Command & options: cimcli niall"<< |
cout<< " Client Command & options: CLI niall"<< |
endl; | endl; |
} | } |
break; | break; |