Skip to content

Commit 757e493

Browse files
authored
feat(librarian): add container req/resp debug logging (#2363)
Fixes: #2024
1 parent 659ea3a commit 757e493

File tree

2 files changed

+35
-20
lines changed

2 files changed

+35
-20
lines changed

internal/docker/docker.go

Lines changed: 32 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -188,16 +188,19 @@ func New(workRoot, image, uid, gid string) (*Docker, error) {
188188
// Generate performs generation for an API which is configured as part of a
189189
// library.
190190
func (c *Docker) Generate(ctx context.Context, request *GenerateRequest) error {
191-
jsonFilePath := filepath.Join(request.RepoDir, config.LibrarianDir, config.GenerateRequest)
192-
if err := writeLibraryState(request.State, request.LibraryID, jsonFilePath); err != nil {
191+
reqFilePath := filepath.Join(request.RepoDir, config.LibrarianDir, config.GenerateRequest)
192+
if err := writeLibraryState(request.State, request.LibraryID, reqFilePath); err != nil {
193193
return err
194194
}
195-
defer func(name string) {
196-
err := os.Remove(name)
195+
defer func() {
196+
if b, err := os.ReadFile(reqFilePath); err == nil {
197+
slog.Debug("generate request", "content", string(b))
198+
}
199+
err := os.Remove(reqFilePath)
197200
if err != nil {
198-
slog.Warn("fail to remove file", slog.String("name", name), slog.Any("err", err))
201+
slog.Warn("fail to remove file", slog.String("name", reqFilePath), slog.Any("err", err))
199202
}
200-
}(jsonFilePath)
203+
}()
201204

202205
commandArgs := []string{
203206
"--librarian=/librarian",
@@ -220,16 +223,19 @@ func (c *Docker) Generate(ctx context.Context, request *GenerateRequest) error {
220223
// Build builds the library with an ID of libraryID, as configured in
221224
// the Librarian state file for the repository with a root of repoRoot.
222225
func (c *Docker) Build(ctx context.Context, request *BuildRequest) error {
223-
jsonFilePath := filepath.Join(request.RepoDir, config.LibrarianDir, config.BuildRequest)
224-
if err := writeLibraryState(request.State, request.LibraryID, jsonFilePath); err != nil {
226+
reqFilePath := filepath.Join(request.RepoDir, config.LibrarianDir, config.BuildRequest)
227+
if err := writeLibraryState(request.State, request.LibraryID, reqFilePath); err != nil {
225228
return err
226229
}
227-
defer func(name string) {
228-
err := os.Remove(name)
230+
defer func() {
231+
if b, err := os.ReadFile(reqFilePath); err == nil {
232+
slog.Debug("build request", "content", string(b))
233+
}
234+
err := os.Remove(reqFilePath)
229235
if err != nil {
230-
slog.Warn("fail to remove file", slog.String("name", name), slog.Any("err", err))
236+
slog.Warn("fail to remove file", slog.String("name", reqFilePath), slog.Any("err", err))
231237
}
232-
}(jsonFilePath)
238+
}()
233239

234240
librarianDir := filepath.Join(request.RepoDir, config.LibrarianDir)
235241
mounts := []string{
@@ -249,14 +255,17 @@ func (c *Docker) Build(ctx context.Context, request *BuildRequest) error {
249255
//
250256
// Returns the configured library id if the command succeeds.
251257
func (c *Docker) Configure(ctx context.Context, request *ConfigureRequest) (string, error) {
252-
requestFilePath := filepath.Join(request.RepoDir, config.LibrarianDir, config.ConfigureRequest)
253-
if err := writeLibrarianState(request.State, requestFilePath); err != nil {
258+
reqFilePath := filepath.Join(request.RepoDir, config.LibrarianDir, config.ConfigureRequest)
259+
if err := writeLibrarianState(request.State, reqFilePath); err != nil {
254260
return "", err
255261
}
256262
defer func() {
257-
err := os.Remove(requestFilePath)
263+
if b, err := os.ReadFile(reqFilePath); err == nil {
264+
slog.Debug("configure request", "content", string(b))
265+
}
266+
err := os.Remove(reqFilePath)
258267
if err != nil {
259-
slog.Warn("fail to remove file", slog.String("name", requestFilePath), slog.Any("err", err))
268+
slog.Warn("fail to remove file", slog.String("name", reqFilePath), slog.Any("err", err))
260269
}
261270
}()
262271
commandArgs := []string{
@@ -283,14 +292,17 @@ func (c *Docker) Configure(ctx context.Context, request *ConfigureRequest) (stri
283292

284293
// ReleaseInit initiates a release for a given language repository.
285294
func (c *Docker) ReleaseInit(ctx context.Context, request *ReleaseInitRequest) error {
286-
requestFilePath := filepath.Join(request.PartialRepoDir, config.LibrarianDir, config.ReleaseInitRequest)
287-
if err := writeLibrarianState(request.State, requestFilePath); err != nil {
295+
reqFilePath := filepath.Join(request.PartialRepoDir, config.LibrarianDir, config.ReleaseInitRequest)
296+
if err := writeLibrarianState(request.State, reqFilePath); err != nil {
288297
return err
289298
}
290299
defer func() {
291-
err := os.Remove(requestFilePath)
300+
if b, err := os.ReadFile(reqFilePath); err == nil {
301+
slog.Debug("release init request", "content", string(b))
302+
}
303+
err := os.Remove(reqFilePath)
292304
if err != nil {
293-
slog.Warn("fail to remove file", slog.String("name", requestFilePath), slog.Any("err", err))
305+
slog.Warn("fail to remove file", slog.String("name", reqFilePath), slog.Any("err", err))
294306
}
295307
}()
296308
commandArgs := []string{

internal/librarian/state.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,9 @@ func saveLibrarianState(repoDir string, state *config.LibrarianState) error {
188188
func readLibraryState(jsonFilePath string) (*config.LibraryState, error) {
189189
data, err := os.ReadFile(jsonFilePath)
190190
defer func() {
191+
if b, err := os.ReadFile(jsonFilePath); err == nil {
192+
slog.Debug("container response", "content", string(b))
193+
}
191194
if err := os.Remove(jsonFilePath); err != nil && !errors.Is(err, os.ErrNotExist) {
192195
slog.Warn("fail to remove file", slog.String("name", jsonFilePath), slog.Any("err", err))
193196
}

0 commit comments

Comments
 (0)