Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Merged
merged 5 commits into from May 7, 2024

Conversation

mdelapenya
Copy link
Collaborator

@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

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
Copy link

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
104 checks passed
@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.

None yet

1 participant