(appGUID string, client LogCacheClient)
| 209 | } |
| 210 | |
| 211 | func GetRecentLogs(appGUID string, client LogCacheClient) ([]LogMessage, error) { |
| 212 | logLineRequestCount := RecentLogsLines |
| 213 | var envelopes []*loggregator_v2.Envelope |
| 214 | var err error |
| 215 | |
| 216 | for logLineRequestCount >= 1 { |
| 217 | envelopes, err = client.Read( |
| 218 | context.Background(), |
| 219 | appGUID, |
| 220 | time.Time{}, |
| 221 | logcache.WithEnvelopeTypes(logcache_v1.EnvelopeType_LOG), |
| 222 | logcache.WithLimit(logLineRequestCount), |
| 223 | logcache.WithDescending(), |
| 224 | ) |
| 225 | if err == nil || err.Error() != "unexpected status code 429" { |
| 226 | break |
| 227 | } |
| 228 | logLineRequestCount /= 2 |
| 229 | } |
| 230 | if err != nil { |
| 231 | return nil, fmt.Errorf("Failed to retrieve logs from Log Cache: %s", err) |
| 232 | } |
| 233 | |
| 234 | logMessages := convertEnvelopesToLogMessages(envelopes) |
| 235 | var reorderedLogMessages []LogMessage |
| 236 | for i := len(logMessages) - 1; i >= 0; i-- { |
| 237 | reorderedLogMessages = append(reorderedLogMessages, *logMessages[i]) |
| 238 | } |
| 239 | |
| 240 | return reorderedLogMessages, nil |
| 241 | } |
| 242 | |
| 243 | func convertEnvelopesToLogMessages(envelopes []*loggregator_v2.Envelope) []*LogMessage { |
| 244 | var logMessages []*LogMessage |
no test coverage detected