@@ -72,7 +72,6 @@ func TestBlacklist(t *testing.T) {
7272 }
7373}
7474
75-
7675func TestBlacklistIncludeOnly (t * testing.T ) {
7776 testBlacklist := []string {
7877 "^[^bla].*" ,
@@ -449,7 +448,9 @@ func TestDDAgentMultiAPIKeys(t *testing.T) {
449448 assert .NoError (err )
450449 assert .Equal (1 , len (agentConfig .APIEndpoints ))
451450 assert .Equal ("foo" , agentConfig .APIEndpoints [0 ].APIKey )
452- assert .Equal ("process.datadoghq.com" , agentConfig .APIEndpoints [0 ].Endpoint .Hostname ())
451+ de , err := url .Parse (defaultEndpoint )
452+ assert .NoError (err )
453+ assert .Equal (de .Hostname (), agentConfig .APIEndpoints [0 ].Endpoint .Hostname ())
453454
454455 ddAgentConf , _ = ini .Load ([]byte (strings .Join ([]string {
455456 "[Main]" ,
@@ -1068,3 +1069,214 @@ func TestIsAffirmative(t *testing.T) {
10681069 assert .Nil (t , err )
10691070 assert .False (t , value )
10701071}
1072+
1073+ //custom tests
1074+
1075+ func TestStackStateFallbackAgentConfigToProcessSTSUrl (t * testing.T ) {
1076+ assert := assert .New (t )
1077+ os .Unsetenv ("DD_PROCESS_AGENT_URL" )
1078+ var ddy YamlAgentConfig
1079+ err := yaml .Unmarshal ([]byte (strings .Join ([]string {
1080+ "api_key: apikey_30" ,
1081+ "sts_url: http://default-endpoint.test.stackstate.com" ,
1082+ "process_agent_enabled: true" ,
1083+ "process_config:" ,
1084+ " enabled: 'true'" ,
1085+ " process_sts_url: http://process-endpoint.test.stackstate.com" ,
1086+ " queue_size: 10" ,
1087+ " intervals:" ,
1088+ " container: 8" ,
1089+ " process: 30" ,
1090+ "network_tracer_config:" ,
1091+ " network_tracing_enabled: 'true'" ,
1092+ " initial_connections_from_proc: 'true'" ,
1093+ }, "\n " )), & ddy )
1094+ assert .NoError (err )
1095+
1096+ agentConfig , err := NewAgentConfig (nil , & ddy , nil )
1097+ assert .NoError (err )
1098+
1099+ ep := agentConfig .APIEndpoints [0 ]
1100+ assert .Equal ("apikey_30" , ep .APIKey )
1101+ assert .Equal ("process-endpoint.test.stackstate.com" , ep .Endpoint .Hostname ())
1102+ }
1103+
1104+ func TestStackStateFallbackAgentConfigToSTSUrl (t * testing.T ) {
1105+ assert := assert .New (t )
1106+ os .Unsetenv ("DD_PROCESS_AGENT_URL" )
1107+ var ddy YamlAgentConfig
1108+ err := yaml .Unmarshal ([]byte (strings .Join ([]string {
1109+ "api_key: apikey_30" ,
1110+ "sts_url: http://default-endpoint.test.stackstate.com" ,
1111+ "process_agent_enabled: true" ,
1112+ "process_config:" ,
1113+ " enabled: 'true'" ,
1114+ " queue_size: 10" ,
1115+ " intervals:" ,
1116+ " container: 8" ,
1117+ " process: 30" ,
1118+ "network_tracer_config:" ,
1119+ " network_tracing_enabled: 'true'" ,
1120+ " initial_connections_from_proc: 'true'" ,
1121+ }, "\n " )), & ddy )
1122+ assert .NoError (err )
1123+
1124+ agentConfig , err := NewAgentConfig (nil , & ddy , nil )
1125+ assert .NoError (err )
1126+
1127+ ep := agentConfig .APIEndpoints [0 ]
1128+ assert .Equal ("apikey_30" , ep .APIKey )
1129+ assert .Equal ("default-endpoint.test.stackstate.com" , ep .Endpoint .Hostname ())
1130+ }
1131+
1132+ func TestStackStateFallbackAgentConfigToEnvSTSUrl (t * testing.T ) {
1133+ assert := assert .New (t )
1134+ os .Unsetenv ("DD_PROCESS_AGENT_URL" )
1135+ os .Unsetenv ("STS_STS_URL" )
1136+ os .Setenv ("STS_STS_URL" , "http://default-endpoint.test.stackstate.com" )
1137+ var ddy YamlAgentConfig
1138+ err := yaml .Unmarshal ([]byte (strings .Join ([]string {
1139+ "api_key: apikey_30" ,
1140+ "process_agent_enabled: true" ,
1141+ "process_config:" ,
1142+ " enabled: 'true'" ,
1143+ " queue_size: 10" ,
1144+ " intervals:" ,
1145+ " container: 8" ,
1146+ " process: 30" ,
1147+ "network_tracer_config:" ,
1148+ " network_tracing_enabled: 'true'" ,
1149+ " initial_connections_from_proc: 'true'" ,
1150+ }, "\n " )), & ddy )
1151+ assert .NoError (err )
1152+
1153+ agentConfig , err := NewAgentConfig (nil , & ddy , nil )
1154+ assert .NoError (err )
1155+
1156+ ep := agentConfig .APIEndpoints [0 ]
1157+ assert .Equal ("apikey_30" , ep .APIKey )
1158+ assert .Equal ("default-endpoint.test.stackstate.com" , ep .Endpoint .Hostname ())
1159+ }
1160+
1161+ func TestStackStateFallbackAgentConfigEmptyUrlToEnvSTSUrl (t * testing.T ) {
1162+ assert := assert .New (t )
1163+ os .Unsetenv ("DD_PROCESS_AGENT_URL" )
1164+ os .Unsetenv ("STS_STS_URL" )
1165+ os .Setenv ("STS_STS_URL" , "http://default-endpoint.test.stackstate.com" )
1166+ var ddy YamlAgentConfig
1167+ err := yaml .Unmarshal ([]byte (strings .Join ([]string {
1168+ "api_key: apikey_30" ,
1169+ "process_agent_enabled: true" ,
1170+ "process_config:" ,
1171+ " process_sts_url: " ,
1172+ " enabled: 'true'" ,
1173+ " queue_size: 10" ,
1174+ " intervals:" ,
1175+ " container: 8" ,
1176+ " process: 30" ,
1177+ "network_tracer_config:" ,
1178+ " network_tracing_enabled: 'true'" ,
1179+ " initial_connections_from_proc: 'true'" ,
1180+ }, "\n " )), & ddy )
1181+ assert .NoError (err )
1182+
1183+ agentConfig , err := NewAgentConfig (nil , & ddy , nil )
1184+ assert .NoError (err )
1185+
1186+ ep := agentConfig .APIEndpoints [0 ]
1187+ assert .Equal ("apikey_30" , ep .APIKey )
1188+ assert .Equal ("default-endpoint.test.stackstate.com" , ep .Endpoint .Hostname ())
1189+ }
1190+
1191+ //case 5: STS_URL as env PROCESS_AGENT_URL as env
1192+ func TestStackStatePreferAgentConfigToEnvPROCESS_AGENT_URL (t * testing.T ) {
1193+ assert := assert .New (t )
1194+ os .Unsetenv ("DD_PROCESS_AGENT_URL" )
1195+ os .Unsetenv ("STS_STS_URL" )
1196+ os .Setenv ("STS_STS_URL" , "http://default-endpoint.test.stackstate.com" )
1197+ os .Setenv ("DD_PROCESS_AGENT_URL" , "http://process-endpoint.test.stackstate.com" )
1198+ var ddy YamlAgentConfig
1199+ err := yaml .Unmarshal ([]byte (strings .Join ([]string {
1200+ "api_key: apikey_30" ,
1201+ "process_agent_enabled: true" ,
1202+ "process_config:" ,
1203+ " enabled: 'true'" ,
1204+ " queue_size: 10" ,
1205+ " intervals:" ,
1206+ " container: 8" ,
1207+ " process: 30" ,
1208+ "network_tracer_config:" ,
1209+ " network_tracing_enabled: 'true'" ,
1210+ " initial_connections_from_proc: 'true'" ,
1211+ }, "\n " )), & ddy )
1212+ assert .NoError (err )
1213+
1214+ agentConfig , err := NewAgentConfig (nil , & ddy , nil )
1215+ assert .NoError (err )
1216+
1217+ ep := agentConfig .APIEndpoints [0 ]
1218+ assert .Equal ("apikey_30" , ep .APIKey )
1219+ assert .Equal ("process-endpoint.test.stackstate.com" , ep .Endpoint .Hostname ())
1220+ }
1221+
1222+ //case 7: STS_URL as env PROCESS_AGENT_URL as yaml - STS URL wins, more specific
1223+ func TestStackStatePreferSTS_STS_URLOverYamlProcessAgentConfig (t * testing.T ) {
1224+ assert := assert .New (t )
1225+ os .Unsetenv ("DD_PROCESS_AGENT_URL" )
1226+ os .Unsetenv ("STS_STS_URL" )
1227+ os .Setenv ("STS_STS_URL" , "http://default-endpoint.test.stackstate.com" )
1228+ var ddy YamlAgentConfig
1229+ err := yaml .Unmarshal ([]byte (strings .Join ([]string {
1230+ "api_key: apikey_30" ,
1231+ "process_agent_enabled: true" ,
1232+ "process_config:" ,
1233+ " enabled: 'true'" ,
1234+ " process_sts_url: http://process-endpoint.test.stackstate.com" ,
1235+ " queue_size: 10" ,
1236+ " intervals:" ,
1237+ " container: 8" ,
1238+ " process: 30" ,
1239+ "network_tracer_config:" ,
1240+ " network_tracing_enabled: 'true'" ,
1241+ " initial_connections_from_proc: 'true'" ,
1242+ }, "\n " )), & ddy )
1243+ assert .NoError (err )
1244+
1245+ agentConfig , err := NewAgentConfig (nil , & ddy , nil )
1246+ assert .NoError (err )
1247+
1248+ ep := agentConfig .APIEndpoints [0 ]
1249+ assert .Equal ("apikey_30" , ep .APIKey )
1250+ assert .Equal ("default-endpoint.test.stackstate.com" , ep .Endpoint .Hostname ())
1251+ }
1252+
1253+ //case 8: STS_URL as yaml, PROCESS_AGENT_URL as env - ENV wins
1254+ func TestStackStatePreferPROCESS_AGENT_URLOverYamlsts_sts_url (t * testing.T ) {
1255+ assert := assert .New (t )
1256+ os .Unsetenv ("STS_PROCESS_AGENT_URL" )
1257+ os .Unsetenv ("STS_STS_URL" )
1258+ os .Setenv ("DD_PROCESS_AGENT_URL" , "http://process-endpoint.test.stackstate.com" )
1259+ var ddy YamlAgentConfig
1260+ err := yaml .Unmarshal ([]byte (strings .Join ([]string {
1261+ "api_key: apikey_30" ,
1262+ "sts_url: http://default-endpoint.test.stackstate.com" ,
1263+ "process_agent_enabled: true" ,
1264+ "process_config:" ,
1265+ " enabled: 'true'" ,
1266+ " queue_size: 10" ,
1267+ " intervals:" ,
1268+ " container: 8" ,
1269+ " process: 30" ,
1270+ "network_tracer_config:" ,
1271+ " network_tracing_enabled: 'true'" ,
1272+ " initial_connections_from_proc: 'true'" ,
1273+ }, "\n " )), & ddy )
1274+ assert .NoError (err )
1275+
1276+ agentConfig , err := NewAgentConfig (nil , & ddy , nil )
1277+ assert .NoError (err )
1278+
1279+ ep := agentConfig .APIEndpoints [0 ]
1280+ assert .Equal ("apikey_30" , ep .APIKey )
1281+ assert .Equal ("process-endpoint.test.stackstate.com" , ep .Endpoint .Hostname ())
1282+ }
0 commit comments