/
legacy_base_image.go
78 lines (61 loc) · 1.69 KB
/
legacy_base_image.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
package container_backend
import (
"context"
"fmt"
"github.com/werf/werf/pkg/image"
)
type legacyBaseImage struct {
name string
info *image.Info
stageDesc *image.StageDescription
finalStageDesc *image.StageDescription
ContainerBackend ContainerBackend
}
func newLegacyBaseImage(name string, containerBackend ContainerBackend) *legacyBaseImage {
img := &legacyBaseImage{}
img.name = name
img.ContainerBackend = containerBackend
return img
}
func (i *legacyBaseImage) Name() string {
return i.name
}
func (i *legacyBaseImage) SetName(name string) {
i.name = name
}
func (i *legacyBaseImage) MustResetInfo(ctx context.Context) error {
if info, err := i.ContainerBackend.GetImageInfo(ctx, i.Name(), GetImageInfoOpts{}); err != nil {
return fmt.Errorf("unable to get info for image %s: %w", i.Name(), err)
} else {
i.SetInfo(info)
}
if i.info == nil {
panic(fmt.Sprintf("runtime error: info must be set for image %q", i.name))
}
return nil
}
func (i *legacyBaseImage) GetInfo() *image.Info {
return i.info
}
func (i *legacyBaseImage) SetInfo(info *image.Info) {
i.info = info
}
func (i *legacyBaseImage) UnsetInfo() {
i.info = nil
}
func (i *legacyBaseImage) SetStageDescription(stageDesc *image.StageDescription) {
i.stageDesc = stageDesc
i.SetInfo(stageDesc.Info)
}
func (i *legacyBaseImage) GetStageDescription() *image.StageDescription {
return i.stageDesc
}
func (i *legacyBaseImage) SetFinalStageDescription(stageDesc *image.StageDescription) {
i.finalStageDesc = stageDesc
}
func (i *legacyBaseImage) GetFinalStageDescription() *image.StageDescription {
return i.finalStageDesc
}
func (i *legacyBaseImage) IsExistsLocally() bool {
return i.info != nil
}