Skip to content

Commit

Permalink
Merge pull request #119 from aws/stress_test
Browse files Browse the repository at this point in the history
change: Added client changes to support perf test
  • Loading branch information
saikiranakula-amzn committed Mar 29, 2024
2 parents 0ffb18f + 66d30de commit c001bcd
Show file tree
Hide file tree
Showing 2 changed files with 78 additions and 2 deletions.
68 changes: 67 additions & 1 deletion api/tests/gmsa_test_client.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -398,7 +398,8 @@ static void show_usage( std::string name )
"accessId, secretkey, sessionToken, region"
<< "\t --invalidargs \t\ttest with invalid args, failure scenario\n"
<< "\t --run_stress_test \t\tstress test with multiple accounts and leases\n"
<< std::endl;
<< "\t --run_perf_test \t\tperf test with multiple accounts and leases\n"
<< std::endl;;
}

// health check daemon
Expand Down Expand Up @@ -571,6 +572,54 @@ int run_stress_test( CredentialsFetcherClient& client, int num_of_leases,
return 0;
}


int run_perf_test( CredentialsFetcherClient& client, int num_of_leases,
int number_of_service_acounts )
{
try
{
std::ifstream file( "credspec_stress_test.txt" );
if ( !file )
{
std::cerr << "ERROR: Cannot open 'credspec_stress_test.txt' !" << std::endl;
return -1;
}
std::string line;
std::vector<std::string> all_cred_specs;
while ( std::getline( file, line ) )
{
all_cred_specs.push_back( line );
}

int num_of_credspecs = all_cred_specs.size();
int num_of_service_accounts_in_lease = number_of_service_acounts;

// build subsets of credspecs to make gRPC calls
for ( int lease = 0; lease < num_of_leases; lease++ )
{
std::random_device rd; // obtain a random number from hardware
std::mt19937 gen( rd() ); // seed the generator
std::uniform_int_distribution<> distr( 0, num_of_credspecs - 1 ); // define the range

std::list<std::string> sub_set_credspecs;
for ( int ns = 0; ns < num_of_service_accounts_in_lease; ns++ )
{
int index = distr( gen );
sub_set_credspecs.push_back( all_cred_specs[index] );
}

create_krb_ticket( client, sub_set_credspecs );
}
}
catch ( const std::exception& ex )
{
std::cerr << "Exception: '" << ex.what() << "'!" << std::endl;
return -1;
}

return 0;
}

// unit tests
bool parse_credspec_domainless_test(std::string credspec)
{
Expand Down Expand Up @@ -842,6 +891,23 @@ int main( int argc, char** argv )
run_stress_test( client, number_of_leases, number_of_service_acounts );
i = 1 + 2;
}
else if ( arg == "--run_perf_test" )
{
if ( i + 2 < argc )
{
number_of_leases = atoi( argv[i + 1] );
number_of_service_acounts = atoi( argv[i + 2] );
}
else
{
std::cout << "--run_perf_test option requires number_of_leases and "
"number_of_service_account per lease arguments. "
<< std::endl;
return 0;
}
run_perf_test( client, number_of_leases, number_of_service_acounts );
i = i + 2;
}
else
{
std::cout << "provide a valid arg, for help use -h or --help" << std::endl;
Expand Down
12 changes: 11 additions & 1 deletion api/tests/stress_test_scripts/credspec_stress_test.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,14 @@
{"CmsPlugins":["ActiveDirectory"],"DomainJoinConfig":{"Sid":"S-1-5-21-4217655605-3681839426-3493040985","MachineAccountName":"WebApp7","Guid":"af602f85-d754-4eea-9fa8-fd76810485f1","DnsTreeName":"contoso.com","DnsName":"contoso.com","NetBiosName":"contoso"},"ActiveDirectoryConfig":{"GroupManagedServiceAccounts":[{"Name":"WebApp7","Scope":"contoso.com"},{"Name":"WebApp7","Scope":"contoso"}]}}
{"CmsPlugins":["ActiveDirectory"],"DomainJoinConfig":{"Sid":"S-1-5-21-4217655605-3681839426-3493040985","MachineAccountName":"WebApp8","Guid":"af602f85-d754-4eea-9fa8-fd76810485f1","DnsTreeName":"contoso.com","DnsName":"contoso.com","NetBiosName":"contoso"},"ActiveDirectoryConfig":{"GroupManagedServiceAccounts":[{"Name":"WebApp8","Scope":"contoso.com"},{"Name":"WebApp8","Scope":"contoso"}]}}
{"CmsPlugins":["ActiveDirectory"],"DomainJoinConfig":{"Sid":"S-1-5-21-4217655605-3681839426-3493040985","MachineAccountName":"WebApp9","Guid":"af602f85-d754-4eea-9fa8-fd76810485f1","DnsTreeName":"contoso.com","DnsName":"contoso.com","NetBiosName":"contoso"},"ActiveDirectoryConfig":{"GroupManagedServiceAccounts":[{"Name":"WebApp9","Scope":"contoso.com"},{"Name":"WebApp9","Scope":"contoso"}]}}
{"CmsPlugins":["ActiveDirectory"],"DomainJoinConfig":{"Sid":"S-1-5-21-4217655605-3681839426-3493040985","MachineAccountName":"WebApp10","Guid":"af602f85-d754-4eea-9fa8-fd76810485f1","DnsTreeName":"contoso.com","DnsName":"contoso.com","NetBiosName":"contoso"},"ActiveDirectoryConfig":{"GroupManagedServiceAccounts":[{"Name":"WebApp10","Scope":"contoso.com"},{"Name":"WebApp10","Scope":"contoso"}]}}
{"CmsPlugins":["ActiveDirectory"],"DomainJoinConfig":{"Sid":"S-1-5-21-4217655605-3681839426-3493040985","MachineAccountName":"WebApp10","Guid":"af602f85-d754-4eea-9fa8-fd76810485f1","DnsTreeName":"contoso.com","DnsName":"contoso.com","NetBiosName":"contoso"},"ActiveDirectoryConfig":{"GroupManagedServiceAccounts":[{"Name":"WebApp10","Scope":"contoso.com"},{"Name":"WebApp10","Scope":"contoso"}]}}
{"CmsPlugins":["ActiveDirectory"],"DomainJoinConfig":{"Sid":"S-1-5-21-4217655605-3681839426-3493040985","MachineAccountName":"WebApp11","Guid":"af602f85-d754-4eea-9fa8-fd76810485f1","DnsTreeName":"contoso.com","DnsName":"contoso.com","NetBiosName":"contoso"},"ActiveDirectoryConfig":{"GroupManagedServiceAccounts":[{"Name":"WebApp11","Scope":"contoso.com"},{"Name":"WebApp11","Scope":"contoso"}]}}
{"CmsPlugins":["ActiveDirectory"],"DomainJoinConfig":{"Sid":"S-1-5-21-4217655605-3681839426-3493040985","MachineAccountName":"WebApp12","Guid":"af602f85-d754-4eea-9fa8-fd76810485f1","DnsTreeName":"contoso.com","DnsName":"contoso.com","NetBiosName":"contoso"},"ActiveDirectoryConfig":{"GroupManagedServiceAccounts":[{"Name":"WebApp12","Scope":"contoso.com"},{"Name":"WebApp12","Scope":"contoso"}]}}
{"CmsPlugins":["ActiveDirectory"],"DomainJoinConfig":{"Sid":"S-1-5-21-4217655605-3681839426-3493040985","MachineAccountName":"WebApp13","Guid":"af602f85-d754-4eea-9fa8-fd76810485f1","DnsTreeName":"contoso.com","DnsName":"contoso.com","NetBiosName":"contoso"},"ActiveDirectoryConfig":{"GroupManagedServiceAccounts":[{"Name":"WebApp13","Scope":"contoso.com"},{"Name":"WebApp13","Scope":"contoso"}]}}
{"CmsPlugins":["ActiveDirectory"],"DomainJoinConfig":{"Sid":"S-1-5-21-4217655605-3681839426-3493040985","MachineAccountName":"WebApp14","Guid":"af602f85-d754-4eea-9fa8-fd76810485f1","DnsTreeName":"contoso.com","DnsName":"contoso.com","NetBiosName":"contoso"},"ActiveDirectoryConfig":{"GroupManagedServiceAccounts":[{"Name":"WebApp14","Scope":"contoso.com"},{"Name":"WebApp14","Scope":"contoso"}]}}
{"CmsPlugins":["ActiveDirectory"],"DomainJoinConfig":{"Sid":"S-1-5-21-4217655605-3681839426-3493040985","MachineAccountName":"WebApp15","Guid":"af602f85-d754-4eea-9fa8-fd76810485f1","DnsTreeName":"contoso.com","DnsName":"contoso.com","NetBiosName":"contoso"},"ActiveDirectoryConfig":{"GroupManagedServiceAccounts":[{"Name":"WebApp15","Scope":"contoso.com"},{"Name":"WebApp15","Scope":"contoso"}]}}
{"CmsPlugins":["ActiveDirectory"],"DomainJoinConfig":{"Sid":"S-1-5-21-4217655605-3681839426-3493040985","MachineAccountName":"WebApp16","Guid":"af602f85-d754-4eea-9fa8-fd76810485f1","DnsTreeName":"contoso.com","DnsName":"contoso.com","NetBiosName":"contoso"},"ActiveDirectoryConfig":{"GroupManagedServiceAccounts":[{"Name":"WebApp16","Scope":"contoso.com"},{"Name":"WebApp16","Scope":"contoso"}]}}
{"CmsPlugins":["ActiveDirectory"],"DomainJoinConfig":{"Sid":"S-1-5-21-4217655605-3681839426-3493040985","MachineAccountName":"WebApp17","Guid":"af602f85-d754-4eea-9fa8-fd76810485f1","DnsTreeName":"contoso.com","DnsName":"contoso.com","NetBiosName":"contoso"},"ActiveDirectoryConfig":{"GroupManagedServiceAccounts":[{"Name":"WebApp17","Scope":"contoso.com"},{"Name":"WebApp17","Scope":"contoso"}]}}
{"CmsPlugins":["ActiveDirectory"],"DomainJoinConfig":{"Sid":"S-1-5-21-4217655605-3681839426-3493040985","MachineAccountName":"WebApp18","Guid":"af602f85-d754-4eea-9fa8-fd76810485f1","DnsTreeName":"contoso.com","DnsName":"contoso.com","NetBiosName":"contoso"},"ActiveDirectoryConfig":{"GroupManagedServiceAccounts":[{"Name":"WebApp18","Scope":"contoso.com"},{"Name":"WebApp18","Scope":"contoso"}]}}
{"CmsPlugins":["ActiveDirectory"],"DomainJoinConfig":{"Sid":"S-1-5-21-4217655605-3681839426-3493040985","MachineAccountName":"WebApp19","Guid":"af602f85-d754-4eea-9fa8-fd76810485f1","DnsTreeName":"contoso.com","DnsName":"contoso.com","NetBiosName":"contoso"},"ActiveDirectoryConfig":{"GroupManagedServiceAccounts":[{"Name":"WebApp19","Scope":"contoso.com"},{"Name":"WebApp19","Scope":"contoso"}]}}
{"CmsPlugins":["ActiveDirectory"],"DomainJoinConfig":{"Sid":"S-1-5-21-4217655605-3681839426-3493040985","MachineAccountName":"WebApp20","Guid":"af602f85-d754-4eea-9fa8-fd76810485f1","DnsTreeName":"contoso.com","DnsName":"contoso.com","NetBiosName":"contoso"},"ActiveDirectoryConfig":{"GroupManagedServiceAccounts":[{"Name":"WebApp20","Scope":"contoso.com"},{"Name":"WebApp20","Scope":"contoso"}]}}

0 comments on commit c001bcd

Please sign in to comment.