Skip to content
This repository was archived by the owner on Nov 27, 2023. It is now read-only.

Commit 274dc82

Browse files
committed
Use proper context in storage key retrieval
1 parent 6552a00 commit 274dc82

File tree

7 files changed

+27
-25
lines changed

7 files changed

+27
-25
lines changed

Diff for: aci/backend.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ func (cs *aciContainerService) Run(ctx context.Context, r containers.ContainerCo
209209
}
210210

211211
logrus.Debugf("Running container %q with name %q\n", r.Image, r.ID)
212-
groupDefinition, err := convert.ToContainerGroup(cs.ctx, project)
212+
groupDefinition, err := convert.ToContainerGroup(ctx, cs.ctx, project)
213213
if err != nil {
214214
return err
215215
}
@@ -410,7 +410,7 @@ func (cs *aciComposeService) Up(ctx context.Context, opts cli.ProjectOptions) er
410410
return err
411411
}
412412
logrus.Debugf("Up on project with name %q\n", project.Name)
413-
groupDefinition, err := convert.ToContainerGroup(cs.ctx, *project)
413+
groupDefinition, err := convert.ToContainerGroup(ctx, cs.ctx, *project)
414414
addTag(&groupDefinition, composeContainerTag)
415415

416416
if err != nil {

Diff for: aci/convert/convert.go

+5-4
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package convert
1818

1919
import (
20+
"context"
2021
"encoding/base64"
2122
"fmt"
2223
"io/ioutil"
@@ -47,7 +48,7 @@ const (
4748
)
4849

4950
// ToContainerGroup converts a compose project into a ACI container group
50-
func ToContainerGroup(aciContext store.AciContext, p types.Project) (containerinstance.ContainerGroup, error) {
51+
func ToContainerGroup(ctx context.Context, aciContext store.AciContext, p types.Project) (containerinstance.ContainerGroup, error) {
5152
project := projectAciHelper(p)
5253
containerGroupName := strings.ToLower(project.Name)
5354
loginService, err := login.NewAzureLoginService()
@@ -58,7 +59,7 @@ func ToContainerGroup(aciContext store.AciContext, p types.Project) (containerin
5859
LoginService: *loginService,
5960
AciContext: aciContext,
6061
}
61-
volumesCache, volumesSlice, err := project.getAciFileVolumes(storageHelper)
62+
volumesCache, volumesSlice, err := project.getAciFileVolumes(ctx, storageHelper)
6263
if err != nil {
6364
return containerinstance.ContainerGroup{}, err
6465
}
@@ -199,7 +200,7 @@ func (p projectAciHelper) getAciSecretVolumes() ([]containerinstance.Volume, err
199200
return secretVolumes, nil
200201
}
201202

202-
func (p projectAciHelper) getAciFileVolumes(helper login.StorageAccountHelper) (map[string]bool, []containerinstance.Volume, error) {
203+
func (p projectAciHelper) getAciFileVolumes(ctx context.Context, helper login.StorageAccountHelper) (map[string]bool, []containerinstance.Volume, error) {
203204
azureFileVolumesMap := make(map[string]bool, len(p.Volumes))
204205
var azureFileVolumesSlice []containerinstance.Volume
205206
for name, v := range p.Volumes {
@@ -212,7 +213,7 @@ func (p projectAciHelper) getAciFileVolumes(helper login.StorageAccountHelper) (
212213
if !ok {
213214
return nil, nil, fmt.Errorf("cannot retrieve account name for Azurefile")
214215
}
215-
accountKey, err := helper.GetAzureStorageAccountKey(accountName)
216+
accountKey, err := helper.GetAzureStorageAccountKey(ctx, accountName)
216217
if err != nil {
217218
return nil, nil, err
218219
}

Diff for: aci/convert/convert_test.go

+13-12
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package convert
1818

1919
import (
20+
"context"
2021
"os"
2122
"testing"
2223

@@ -40,7 +41,7 @@ func TestProjectName(t *testing.T) {
4041
project := types.Project{
4142
Name: "TEST",
4243
}
43-
containerGroup, err := ToContainerGroup(convertCtx, project)
44+
containerGroup, err := ToContainerGroup(context.TODO(), convertCtx, project)
4445
assert.NilError(t, err)
4546
assert.Equal(t, *containerGroup.Name, "test")
4647
}
@@ -117,7 +118,7 @@ func TestComposeContainerGroupToContainerWithDnsSideCarSide(t *testing.T) {
117118
},
118119
}
119120

120-
group, err := ToContainerGroup(convertCtx, project)
121+
group, err := ToContainerGroup(context.TODO(), convertCtx, project)
121122
assert.NilError(t, err)
122123
assert.Assert(t, is.Len(*group.Containers, 3))
123124

@@ -142,7 +143,7 @@ func TestComposeSingleContainerGroupToContainerNoDnsSideCarSide(t *testing.T) {
142143
},
143144
}
144145

145-
group, err := ToContainerGroup(convertCtx, project)
146+
group, err := ToContainerGroup(context.TODO(), convertCtx, project)
146147
assert.NilError(t, err)
147148

148149
assert.Assert(t, is.Len(*group.Containers, 1))
@@ -165,7 +166,7 @@ func TestComposeSingleContainerRestartPolicy(t *testing.T) {
165166
},
166167
}
167168

168-
group, err := ToContainerGroup(convertCtx, project)
169+
group, err := ToContainerGroup(context.TODO(), convertCtx, project)
169170
assert.NilError(t, err)
170171

171172
assert.Assert(t, is.Len(*group.Containers, 1))
@@ -197,7 +198,7 @@ func TestComposeMultiContainerRestartPolicy(t *testing.T) {
197198
},
198199
}
199200

200-
group, err := ToContainerGroup(convertCtx, project)
201+
group, err := ToContainerGroup(context.TODO(), convertCtx, project)
201202
assert.NilError(t, err)
202203

203204
assert.Assert(t, is.Len(*group.Containers, 3))
@@ -231,7 +232,7 @@ func TestComposeInconsistentMultiContainerRestartPolicy(t *testing.T) {
231232
},
232233
}
233234

234-
_, err := ToContainerGroup(convertCtx, project)
235+
_, err := ToContainerGroup(context.TODO(), convertCtx, project)
235236
assert.Error(t, err, "ACI integration does not support specifying different restart policies on containers in the same compose application")
236237
}
237238

@@ -248,7 +249,7 @@ func TestLabelsErrorMessage(t *testing.T) {
248249
},
249250
}
250251

251-
_, err := ToContainerGroup(convertCtx, project)
252+
_, err := ToContainerGroup(context.TODO(), convertCtx, project)
252253
assert.Error(t, err, "ACI integration does not support labels in compose applications")
253254
}
254255

@@ -262,7 +263,7 @@ func TestComposeSingleContainerGroupToContainerDefaultRestartPolicy(t *testing.T
262263
},
263264
}
264265

265-
group, err := ToContainerGroup(convertCtx, project)
266+
group, err := ToContainerGroup(context.TODO(), convertCtx, project)
266267
assert.NilError(t, err)
267268

268269
assert.Assert(t, is.Len(*group.Containers, 1))
@@ -296,7 +297,7 @@ func TestComposeContainerGroupToContainerMultiplePorts(t *testing.T) {
296297
},
297298
}
298299

299-
group, err := ToContainerGroup(convertCtx, project)
300+
group, err := ToContainerGroup(context.TODO(), convertCtx, project)
300301
assert.NilError(t, err)
301302
assert.Assert(t, is.Len(*group.Containers, 3))
302303

@@ -335,7 +336,7 @@ func TestComposeContainerGroupToContainerResourceLimits(t *testing.T) {
335336
},
336337
}
337338

338-
group, err := ToContainerGroup(convertCtx, project)
339+
group, err := ToContainerGroup(context.TODO(), convertCtx, project)
339340
assert.NilError(t, err)
340341

341342
limits := *((*group.Containers)[0]).Resources.Limits
@@ -361,7 +362,7 @@ func TestComposeContainerGroupToContainerResourceLimitsDefaults(t *testing.T) {
361362
},
362363
}
363364

364-
group, err := ToContainerGroup(convertCtx, project)
365+
group, err := ToContainerGroup(context.TODO(), convertCtx, project)
365366
assert.NilError(t, err)
366367

367368
limits := *((*group.Containers)[0]).Resources.Limits
@@ -385,7 +386,7 @@ func TestComposeContainerGroupToContainerenvVar(t *testing.T) {
385386
},
386387
}
387388

388-
group, err := ToContainerGroup(convertCtx, project)
389+
group, err := ToContainerGroup(context.TODO(), convertCtx, project)
389390
assert.NilError(t, err)
390391

391392
envVars := *((*group.Containers)[0]).EnvironmentVariables

Diff for: aci/login/StorageAccountHelper.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,12 @@ type StorageAccountHelper struct {
1616
}
1717

1818
// GetAzureStorageAccountKey retrieves the storage account ket from the current azure login
19-
func (helper StorageAccountHelper) GetAzureStorageAccountKey(accountName string) (string, error) {
19+
func (helper StorageAccountHelper) GetAzureStorageAccountKey(ctx context.Context, accountName string) (string, error) {
2020
client, err := GetStorageAccountsClient(helper.AciContext.SubscriptionID)
2121
if err != nil {
2222
return "", err
2323
}
24-
result, err := client.ListKeys(context.TODO(), helper.AciContext.ResourceGroup, accountName, "")
24+
result, err := client.ListKeys(ctx, helper.AciContext.ResourceGroup, accountName, "")
2525
if err != nil {
2626
return "", errors.Wrap(err, fmt.Sprintf("could not access storage account acountKeys for %s, using the azure login", accountName))
2727
}

Diff for: aci/login/clientsetup.go renamed to aci/login/client.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import (
1313
"github.com/docker/api/errdefs"
1414
)
1515

16-
const aciDockerUserAgent = "docker-cli"
16+
const userAgent = "docker-cli"
1717

1818
// GetContainerGroupsClient get client toi manipulate containerGrouos
1919
func GetContainerGroupsClient(subscriptionID string) (containerinstance.ContainerGroupsClient, error) {
@@ -29,7 +29,7 @@ func GetContainerGroupsClient(subscriptionID string) (containerinstance.Containe
2929
}
3030

3131
func setupClient(aciClient *autorest.Client) error {
32-
aciClient.UserAgent = aciDockerUserAgent
32+
aciClient.UserAgent = userAgent
3333
auth, err := NewAuthorizerFromLogin()
3434
if err != nil {
3535
return err

Diff for: aci/resource_group.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,11 @@ package aci
1919
import (
2020
"context"
2121

22-
"github.com/docker/api/aci/login"
23-
2422
"github.com/Azure/azure-sdk-for-go/profiles/2019-03-01/resources/mgmt/resources"
2523
"github.com/Azure/azure-sdk-for-go/profiles/preview/preview/subscription/mgmt/subscription"
2624
"github.com/pkg/errors"
25+
26+
"github.com/docker/api/aci/login"
2727
)
2828

2929
// ResourceGroupHelper interface to manage resource groups and subscription IDs

Diff for: tests/composefiles/aci-demo/aci_demo_port_secrets_volumes.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,4 @@ volumes:
2222
driver: azure_file
2323
driver_opts:
2424
share_name: minecraft-volume
25-
storage_account_name: minecraftdocker
25+
storage_account_name: minecraftdocker

0 commit comments

Comments
 (0)