Include container names in `network inspect`
| ... | ... |
@@ -362,6 +362,7 @@ type NetworkResource struct {
|
| 362 | 362 |
|
| 363 | 363 |
// EndpointResource contains network resources allocated and used for a container in a network |
| 364 | 364 |
type EndpointResource struct {
|
| 365 |
+ Name string |
|
| 365 | 366 |
EndpointID string |
| 366 | 367 |
MacAddress string |
| 367 | 368 |
IPv4Address string |
| ... | ... |
@@ -294,6 +294,47 @@ func (s *DockerSuite) TestDockerInspectMultipleNetwork(c *check.C) {
|
| 294 | 294 |
c.Assert(out, checker.Contains, "Error: No such network: nonexistent") |
| 295 | 295 |
} |
| 296 | 296 |
|
| 297 |
+func (s *DockerSuite) TestDockerInspectNetworkWithContainerName(c *check.C) {
|
|
| 298 |
+ dockerCmd(c, "network", "create", "brNetForInspect") |
|
| 299 |
+ assertNwIsAvailable(c, "brNetForInspect") |
|
| 300 |
+ defer func() {
|
|
| 301 |
+ dockerCmd(c, "network", "rm", "brNetForInspect") |
|
| 302 |
+ assertNwNotAvailable(c, "brNetForInspect") |
|
| 303 |
+ }() |
|
| 304 |
+ |
|
| 305 |
+ out, _ := dockerCmd(c, "run", "-d", "--name", "testNetInspect1", "--net", "brNetForInspect", "busybox", "top") |
|
| 306 |
+ c.Assert(waitRun("testNetInspect1"), check.IsNil)
|
|
| 307 |
+ containerID := strings.TrimSpace(out) |
|
| 308 |
+ defer func() {
|
|
| 309 |
+ // we don't stop container by name, because we'll rename it later |
|
| 310 |
+ dockerCmd(c, "stop", containerID) |
|
| 311 |
+ }() |
|
| 312 |
+ |
|
| 313 |
+ out, _ = dockerCmd(c, "network", "inspect", "brNetForInspect") |
|
| 314 |
+ networkResources := []types.NetworkResource{}
|
|
| 315 |
+ err := json.Unmarshal([]byte(out), &networkResources) |
|
| 316 |
+ c.Assert(err, check.IsNil) |
|
| 317 |
+ c.Assert(networkResources, checker.HasLen, 1) |
|
| 318 |
+ container, ok := networkResources[0].Containers[containerID] |
|
| 319 |
+ c.Assert(ok, checker.True) |
|
| 320 |
+ c.Assert(container.Name, checker.Equals, "testNetInspect1") |
|
| 321 |
+ |
|
| 322 |
+ // rename container and check docker inspect output update |
|
| 323 |
+ newName := "HappyNewName" |
|
| 324 |
+ dockerCmd(c, "rename", "testNetInspect1", newName) |
|
| 325 |
+ |
|
| 326 |
+ // check whether network inspect works properly |
|
| 327 |
+ out, _ = dockerCmd(c, "network", "inspect", "brNetForInspect") |
|
| 328 |
+ newNetRes := []types.NetworkResource{}
|
|
| 329 |
+ err = json.Unmarshal([]byte(out), &newNetRes) |
|
| 330 |
+ c.Assert(err, check.IsNil) |
|
| 331 |
+ c.Assert(newNetRes, checker.HasLen, 1) |
|
| 332 |
+ container1, ok := newNetRes[0].Containers[containerID] |
|
| 333 |
+ c.Assert(ok, checker.True) |
|
| 334 |
+ c.Assert(container1.Name, checker.Equals, newName) |
|
| 335 |
+ |
|
| 336 |
+} |
|
| 337 |
+ |
|
| 297 | 338 |
func (s *DockerNetworkSuite) TestDockerNetworkConnectDisconnect(c *check.C) {
|
| 298 | 339 |
dockerCmd(c, "network", "create", "test") |
| 299 | 340 |
assertNwIsAvailable(c, "test") |