Skip to content
This repository was archived by the owner on Mar 22, 2022. It is now read-only.

Commit 88eb980

Browse files
gloursndeloof
authored andcommitted
Move Labels to a dedicated file into internal directory
Signed-off-by: Guillaume Lours <[email protected]>
1 parent f91c91a commit 88eb980

File tree

2 files changed

+26
-24
lines changed

2 files changed

+26
-24
lines changed

internal/labels.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package internal
2+
3+
const (
4+
labelNamespace = "io.compose-spec"
5+
LabelService = labelNamespace + ".service"
6+
LabelNetwork = labelNamespace + ".network"
7+
LabelVolume = labelNamespace + ".volume"
8+
LabelProject = labelNamespace + ".project"
9+
LabelConfig = labelNamespace + ".config"
10+
)

main.go

Lines changed: 16 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"path/filepath"
1010
"strings"
1111

12+
"github.com/compose-spec/compose-ref/internal"
1213
"github.com/docker/docker/api/types/filters"
1314
"github.com/docker/docker/api/types/mount"
1415
"github.com/docker/docker/errdefs"
@@ -167,7 +168,7 @@ func doUp(project string, config *compose.Config) error {
167168

168169
diverged := false
169170
for _, cntr := range containers {
170-
config := cntr.Labels[labelConfig]
171+
config := cntr.Labels[internal.LabelConfig]
171172
if config != expected {
172173
diverged = true
173174
break
@@ -204,7 +205,7 @@ func doUp(project string, config *compose.Config) error {
204205
func removeContainers(cli *client.Client, containers []types.Container) error {
205206
ctx := context.Background()
206207
for _, c := range containers {
207-
if serviceName, ok := c.Labels[labelService]; ok {
208+
if serviceName, ok := c.Labels[internal.LabelService]; ok {
208209
fmt.Printf("Stopping containers for service %s ... ", serviceName)
209210
}
210211
err := cli.ContainerStop(ctx, c.ID, nil)
@@ -236,14 +237,14 @@ func createService(cli *client.Client, project string, prjDir string, s compose.
236237
for k, v := range s.Labels {
237238
labels[k] = v
238239
}
239-
labels[labelProject] = project
240-
labels[labelService] = s.Name
240+
labels[internal.LabelProject] = project
241+
labels[internal.LabelService] = s.Name
241242

242243
b, err := yaml.Marshal(s)
243244
if err != nil {
244245
return err
245246
}
246-
labels[labelConfig] = string(b)
247+
labels[internal.LabelConfig] = string(b)
247248

248249
fmt.Printf("Creating container for service %s ... ", s.Name)
249250
networkMode := networkMode(s, networks)
@@ -330,8 +331,8 @@ func createNetwork(cli *client.Client, project string, networkDefaultName string
330331
if createOptions.Labels == nil {
331332
createOptions.Labels = map[string]string{}
332333
}
333-
createOptions.Labels[labelProject] = project
334-
createOptions.Labels[labelNetwork] = name
334+
createOptions.Labels[internal.LabelProject] = project
335+
createOptions.Labels[internal.LabelNetwork] = name
335336

336337
if netConfig.External.External {
337338
_, err := cli.NetworkInspect(context.Background(), name, types.NetworkInspectOptions{})
@@ -409,8 +410,8 @@ func createVolume(cli *client.Client, project string, volumeDefaultName string,
409410
Driver: volumeConfig.Driver,
410411
DriverOpts: volumeConfig.DriverOpts,
411412
Labels: map[string]string{
412-
labelProject: project,
413-
labelVolume: name,
413+
internal.LabelProject: project,
414+
internal.LabelVolume: name,
414415
},
415416
})
416417

@@ -468,14 +469,14 @@ func buildTmpfsOptions(tmpfs *compose.ServiceVolumeTmpfs) *mount.TmpfsOptions {
468469
func collectContainers(cli *client.Client, project string) (map[string][]types.Container, error) {
469470
containerList, err := cli.ContainerList(context.Background(), types.ContainerListOptions{
470471
All: true,
471-
Filters: filters.NewArgs(filters.Arg("label", labelProject+"="+project)),
472+
Filters: filters.NewArgs(filters.Arg("label", internal.LabelProject+"="+project)),
472473
})
473474
if err != nil {
474475
return nil, err
475476
}
476477
containers := map[string][]types.Container{}
477478
for _, c := range containerList {
478-
service := c.Labels[labelService]
479+
service := c.Labels[internal.LabelService]
479480
l, ok := containers[service]
480481
if !ok {
481482
l = []types.Container{c}
@@ -489,14 +490,14 @@ func collectContainers(cli *client.Client, project string) (map[string][]types.C
489490

490491
func collectNetworks(cli *client.Client, project string) (map[string][]types.NetworkResource, error) {
491492
networkList, err := cli.NetworkList(context.Background(), types.NetworkListOptions{
492-
Filters: filters.NewArgs(filters.Arg("label", labelProject+"="+project)),
493+
Filters: filters.NewArgs(filters.Arg("label", internal.LabelProject+"="+project)),
493494
})
494495
if err != nil {
495496
return nil, err
496497
}
497498
networks := map[string][]types.NetworkResource{}
498499
for _, r := range networkList {
499-
resource := r.Labels[labelNetwork]
500+
resource := r.Labels[internal.LabelNetwork]
500501
l, ok := networks[resource]
501502
if !ok {
502503
l = []types.NetworkResource{r}
@@ -510,14 +511,14 @@ func collectNetworks(cli *client.Client, project string) (map[string][]types.Net
510511
}
511512

512513
func collectVolumes(cli *client.Client, project string) (map[string][]types.Volume, error) {
513-
filter := filters.NewArgs(filters.Arg("label", labelProject+"="+project))
514+
filter := filters.NewArgs(filters.Arg("label", internal.LabelProject+"="+project))
514515
list, err := cli.VolumeList(context.Background(), filter)
515516
if err != nil {
516517
return nil, err
517518
}
518519
volumes := map[string][]types.Volume{}
519520
for _, v := range list.Volumes {
520-
resource := v.Labels[labelVolume]
521+
resource := v.Labels[internal.LabelVolume]
521522
l, ok := volumes[resource]
522523
if !ok {
523524
l = []types.Volume{*v}
@@ -699,12 +700,3 @@ func buildContainerBindingOptions(serviceConfig compose.ServiceConfig) nat.PortM
699700
}
700701
return bindings
701702
}
702-
703-
const (
704-
labelNamespace = "io.compose-spec"
705-
labelService = labelNamespace + ".service"
706-
labelNetwork = labelNamespace + ".network"
707-
labelVolume = labelNamespace + ".volume"
708-
labelProject = labelNamespace + ".project"
709-
labelConfig = labelNamespace + ".config"
710-
)

0 commit comments

Comments
 (0)