Skip to content

feat: expose JSON representation of a container with Inspect#2534

Merged
mdelapenya merged 5 commits intotestcontainers:mainfrom
mdelapenya:expose-inspect
May 7, 2024
Merged

feat: expose JSON representation of a container with Inspect#2534
mdelapenya merged 5 commits intotestcontainers:mainfrom
mdelapenya:expose-inspect

Conversation

@mdelapenya
Copy link
Copy Markdown
Member

@mdelapenya mdelapenya commented May 7, 2024

What does this PR do?

It exposes the existing inspect method to the Container interface. That will allow consumers to get the JSON representation of the container.

This new method will cache the raw JSON, which will be cleaned after stopping/terminating a container. Remember that when a container is stopped, the JSON representation could change.

At the same time, given the Inspect method retrives all the container info, we are deprecating two container methods: Name and Ports, as they are just passing-through ones. Consumers will just call inspect and from there get the container name and the ports. The deprecation paths have been properly set in the method comments, so the IDEs and the linters will complain/warn about them.

Deprecation Path

  • c.Name(ctx): Use c.Inspect(ctx).Name instead
  • c.Ports(ctx): Use c.Inspect(ctx).NetworkSettings.Ports instead

As Inspect returns an error, you must handle it before reading Name or the Ports.

Why is it important?

It will allow consumers to get the JSON representation of the container.

Related issues

mdelapenya added 2 commits May 7, 2024 13:18
They can be used simply calling c.Inspect, without any other calculation
@mdelapenya mdelapenya requested a review from a team as a code owner May 7, 2024 12:03
@mdelapenya mdelapenya added the feature New functionality or new behaviors on the existing one label May 7, 2024
@mdelapenya mdelapenya self-assigned this May 7, 2024
@mdelapenya mdelapenya requested a review from eddumelendez May 7, 2024 12:03
@netlify
Copy link
Copy Markdown

netlify bot commented May 7, 2024

Deploy Preview for testcontainers-go ready!

Name Link
🔨 Latest commit 1078bff
🔍 Latest deploy log https://app.netlify.com/sites/testcontainers-go/deploys/663a379c542b7c0008be5669
😎 Deploy Preview https://deploy-preview-2534--testcontainers-go.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

@mdelapenya mdelapenya merged commit 5fa6548 into testcontainers:main May 7, 2024
@mdelapenya mdelapenya deleted the expose-inspect branch May 7, 2024 15:39
mdelapenya added a commit to khartld/testcontainers-go that referenced this pull request May 7, 2024
* main: (44 commits)
  feat: expose JSON representation of a container with Inspect (testcontainers#2534)
  chore(deps): bump test-summary action to v2.3 (testcontainers#2535)
  chore(deps): bump jinja2 from 3.1.3 to 3.1.4 (testcontainers#2533)
  Update devcontainer image (testcontainers#2531)
  chore(influxdb): include more characters in wait for log regex (testcontainers#2532)
  fix(compose): avoid race conditions when caching services (testcontainers#2528)
  chore(deps): bump golangci/golangci-lint-action from 3.7.0 to 5.1.0 (testcontainers#2525)
  chore(deps): bump mkdocs-material from 8.2.7 to 9.1.21 (testcontainers#2524)
  chore(compose): return error in options (testcontainers#2520)
  chore(deps): bump github.com/compose-spec/compose-go/v2 from v2.0.0-rc8 to v2.1.0 (testcontainers#2519)
  chore(deps): bump github.com/containerd/containerd from 1.7.12 to 1.7.15 (testcontainers#2517)
  break: return error from Customize request option (testcontainers#2267)
  fix: wrong copy paste (testcontainers#2515)
  docs: add documentation for Exec method (testcontainers#2451)
  docs: document the SSHd tunnel (testcontainers#2514)
  fix: enhance host configuration port binding (testcontainers#2512)
  feat: forward host ports to a container using an SSH tunnel (testcontainers#2471)
  Update follow_logs.md with adding missing package (testcontainers#2513)
  fix: don't retry on permanent APIClient errors (testcontainers#2506)
  feat: support overriding the default recreate options for compose (testcontainers#2511)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature New functionality or new behaviors on the existing one

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant