Skip to content

Commit 1e19dfe

Browse files
Forest Eckhardtrobdimsdale
Forest Eckhardt
authored andcommitted
Adds app name to network bridge to make it thread safe
1 parent 3fc310d commit 1e19dfe

File tree

6 files changed

+10
-10
lines changed

6 files changed

+10
-10
lines changed

internal/docker/setup.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ func (s Setup) Run(ctx context.Context, logs io.Writer, name, path string) (stri
118118
return "", fmt.Errorf("failed to copy image pull logs: %w", err)
119119
}
120120

121-
err = s.networks.Create(ctx, InternalNetworkName, "bridge", true)
121+
err = s.networks.Create(ctx, fmt.Sprintf("%s-%s", InternalNetworkName, name), "bridge", true)
122122
if err != nil {
123123
return "", fmt.Errorf("failed to create network: %w", err)
124124
}
@@ -190,7 +190,7 @@ func (s Setup) Run(ctx context.Context, logs io.Writer, name, path string) (stri
190190
}
191191

192192
hostConfig := container.HostConfig{
193-
NetworkMode: container.NetworkMode(InternalNetworkName),
193+
NetworkMode: container.NetworkMode(fmt.Sprintf("%s-%s", InternalNetworkName, name)),
194194
}
195195

196196
resp, err := s.client.ContainerCreate(ctx, &containerConfig, &hostConfig, nil, nil, name)

internal/docker/setup_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ func testSetup(t *testing.T, context spec.G, it spec.S) {
110110

111111
Expect(client.ImagePullCall.Receives.Ref).To(Equal("cloudfoundry/default-stack:latest"))
112112

113-
Expect(networkManager.CreateCall.Receives.Name).To(Equal("switchblade-internal"))
113+
Expect(networkManager.CreateCall.Receives.Name).To(Equal("switchblade-internal-some-app"))
114114
Expect(networkManager.CreateCall.Receives.Driver).To(Equal("bridge"))
115115
Expect(networkManager.CreateCall.Receives.Internal).To(BeTrue())
116116

@@ -138,7 +138,7 @@ func testSetup(t *testing.T, context spec.G, it spec.S) {
138138
WorkingDir: "/home/vcap",
139139
}))
140140
Expect(client.ContainerCreateCall.Receives.HostConfig).To(Equal(&container.HostConfig{
141-
NetworkMode: container.NetworkMode("switchblade-internal"),
141+
NetworkMode: container.NetworkMode("switchblade-internal-some-app"),
142142
}))
143143
Expect(client.ContainerCreateCall.Receives.ContainerName).To(Equal("some-app"))
144144

internal/docker/start.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ func (s Start) Run(ctx context.Context, logs io.Writer, name, command string) (s
122122

123123
hostConfig := container.HostConfig{
124124
PublishAllPorts: true,
125-
NetworkMode: container.NetworkMode(InternalNetworkName),
125+
NetworkMode: container.NetworkMode(fmt.Sprintf("%s-%s", InternalNetworkName, name)),
126126
}
127127

128128
resp, err := s.client.ContainerCreate(ctx, &containerConfig, &hostConfig, nil, nil, name)
@@ -178,7 +178,7 @@ func (s Start) Run(ctx context.Context, logs io.Writer, name, command string) (s
178178
}
179179

180180
var internalURL string
181-
network, ok := container.NetworkSettings.Networks[InternalNetworkName]
181+
network, ok := container.NetworkSettings.Networks[fmt.Sprintf("%s-%s", InternalNetworkName, name)]
182182
if ok {
183183
internalURL = fmt.Sprintf("http://%s:8080", network.IPAddress)
184184
}

internal/docker/start_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ func testStart(t *testing.T, context spec.G, it spec.S) {
7979
},
8080
},
8181
Networks: map[string]*network.EndpointSettings{
82-
"switchblade-internal": {
82+
"switchblade-internal-some-app": {
8383
IPAddress: "172.19.0.2",
8484
},
8585
},
@@ -129,7 +129,7 @@ func testStart(t *testing.T, context spec.G, it spec.S) {
129129
}))
130130
Expect(client.ContainerCreateCall.Receives.HostConfig).To(Equal(&container.HostConfig{
131131
PublishAllPorts: true,
132-
NetworkMode: container.NetworkMode("switchblade-internal"),
132+
NetworkMode: container.NetworkMode("switchblade-internal-some-app"),
133133
}))
134134

135135
Expect(networkManager.ConnectCall.Receives.ContainerID).To(Equal("some-container-id"))

internal/docker/teardown.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ func (t Teardown) Run(ctx context.Context, name string) error {
4545
return fmt.Errorf("failed to remove container: %w", err)
4646
}
4747

48-
err = t.networks.Delete(ctx, InternalNetworkName)
48+
err = t.networks.Delete(ctx, fmt.Sprintf("%s-%s", InternalNetworkName, name))
4949
if err != nil {
5050
return fmt.Errorf("failed to delete network: %w", err)
5151
}

internal/docker/teardown_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ func testTeardown(t *testing.T, context spec.G, it spec.S) {
7878
Force: true,
7979
}))
8080

81-
Expect(networkManager.DeleteCall.Receives.Name).To(Equal("switchblade-internal"))
81+
Expect(networkManager.DeleteCall.Receives.Name).To(Equal("switchblade-internal-some-app"))
8282

8383
Expect(filepath.Join(workspace, "droplets", "some-app.tar.gz")).NotTo(BeAnExistingFile())
8484
Expect(filepath.Join(workspace, "source", "some-app.tar.gz")).NotTo(BeAnExistingFile())

0 commit comments

Comments
 (0)