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

Commit 7b1aafc

Browse files
committed
only replace image tag when retrieving image, and update source in prepper
1 parent d2b317e commit 7b1aafc

File tree

5 files changed

+36
-32
lines changed

5 files changed

+36
-32
lines changed

cmd/root.go

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -128,22 +128,17 @@ func getPrepperForImage(image string) (pkgutil.Prepper, error) {
128128
}
129129

130130
if pkgutil.IsTar(image) {
131-
return pkgutil.TarPrepper{
131+
return &pkgutil.TarPrepper{
132132
Source: image,
133133
Client: cli,
134134
}, nil
135135
}
136136

137-
// see if the image name has tag provided, if not add latest as tag
138-
if !pkgutil.HasTag(image) {
139-
image = image + pkgutil.LatestTag
140-
}
141-
142137
if strings.HasPrefix(image, DaemonPrefix) {
143138
// remove the DaemonPrefix
144139
image = strings.Replace(image, DaemonPrefix, "", -1)
145140

146-
return pkgutil.DaemonPrepper{
141+
return &pkgutil.DaemonPrepper{
147142
Source: image,
148143
Client: cli,
149144
}, nil
@@ -171,12 +166,11 @@ func getPrepperForImage(image string) (pkgutil.Prepper, error) {
171166
}
172167
}
173168

174-
return pkgutil.CloudPrepper{
169+
return &pkgutil.CloudPrepper{
175170
Source: strings.Replace(image, RemotePrefix, "", -1),
176171
Client: cli,
177172
ImageSource: src,
178173
}, nil
179-
180174
}
181175

182176
func cacheDir() (string, error) {

pkg/util/cloud_prepper.go

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,21 +32,25 @@ type CloudPrepper struct {
3232
ImageSource types.ImageSource
3333
}
3434

35-
func (p CloudPrepper) Name() string {
35+
func (p *CloudPrepper) Name() string {
3636
return "Cloud Registry"
3737
}
3838

39-
func (p CloudPrepper) GetSource() string {
39+
func (p *CloudPrepper) GetSource() string {
4040
return p.Source
4141
}
4242

43-
func (p CloudPrepper) GetImage() (Image, error) {
43+
func (p *CloudPrepper) SetSource(source string) {
44+
p.Source = source
45+
}
46+
47+
func (p *CloudPrepper) GetImage() (Image, error) {
4448
image, err := getImage(p)
4549
image.Type = ImageTypeCloud
4650
return image, err
4751
}
4852

49-
func (p CloudPrepper) GetFileSystem() (string, error) {
53+
func (p *CloudPrepper) GetFileSystem() (string, error) {
5054
ref, err := docker.ParseReference("//" + p.Source)
5155
if err != nil {
5256
return "", err
@@ -62,7 +66,7 @@ func (p CloudPrepper) GetFileSystem() (string, error) {
6266
return path, GetFileSystemFromReference(ref, p.ImageSource, path, nil)
6367
}
6468

65-
func (p CloudPrepper) GetConfig() (ConfigSchema, error) {
69+
func (p *CloudPrepper) GetConfig() (ConfigSchema, error) {
6670
ref, err := docker.ParseReference("//" + p.Source)
6771
if err != nil {
6872
return ConfigSchema{}, err

pkg/util/daemon_prepper.go

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,21 +32,25 @@ type DaemonPrepper struct {
3232
Client *client.Client
3333
}
3434

35-
func (p DaemonPrepper) Name() string {
35+
func (p *DaemonPrepper) Name() string {
3636
return "Local Daemon"
3737
}
3838

39-
func (p DaemonPrepper) GetSource() string {
39+
func (p *DaemonPrepper) GetSource() string {
4040
return p.Source
4141
}
4242

43-
func (p DaemonPrepper) GetImage() (Image, error) {
43+
func (p *DaemonPrepper) SetSource(source string) {
44+
p.Source = source
45+
}
46+
47+
func (p *DaemonPrepper) GetImage() (Image, error) {
4448
image, err := getImage(p)
4549
image.Type = ImageTypeDaemon
4650
return image, err
4751
}
4852

49-
func (p DaemonPrepper) GetFileSystem() (string, error) {
53+
func (p *DaemonPrepper) GetFileSystem() (string, error) {
5054
ref, err := daemon.ParseReference(p.Source)
5155
if err != nil {
5256
return "", err
@@ -67,15 +71,15 @@ func (p DaemonPrepper) GetFileSystem() (string, error) {
6771
return path, GetFileSystemFromReference(ref, src, path, nil)
6872
}
6973

70-
func (p DaemonPrepper) GetConfig() (ConfigSchema, error) {
74+
func (p *DaemonPrepper) GetConfig() (ConfigSchema, error) {
7175
ref, err := daemon.ParseReference(p.Source)
7276
if err != nil {
7377
return ConfigSchema{}, err
7478
}
7579
return getConfigFromReference(ref, p.Source)
7680
}
7781

78-
func (p DaemonPrepper) GetHistory() []ImageHistoryItem {
82+
func (p *DaemonPrepper) GetHistory() []ImageHistoryItem {
7983
history, err := p.Client.ImageHistory(context.Background(), p.Source)
8084
if err != nil {
8185
logrus.Errorf("Could not obtain image history for %s: %s", p.Source, err)

pkg/util/image_prep_utils.go

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ type Prepper interface {
3838
GetFileSystem() (string, error)
3939
GetImage() (Image, error)
4040
GetSource() string
41+
SetSource(string)
4142
}
4243

4344
type ImageType int
@@ -99,14 +100,11 @@ type ConfigSchema struct {
99100
}
100101

101102
func getImage(p Prepper) (Image, error) {
102-
var source string
103103
// see if the image name has tag provided, if not add latest as tag
104104
if !HasTag(p.GetSource()) {
105-
source = p.GetSource() + LatestTag
106-
} else {
107-
source = p.GetSource()
105+
p.SetSource(p.GetSource() + LatestTag)
108106
}
109-
output.PrintToStdErr("Retrieving image %s from source %s\n", source, p.Name())
107+
output.PrintToStdErr("Retrieving image %s from source %s\n", p.GetSource(), p.Name())
110108
imgPath, err := p.GetFileSystem()
111109
if err != nil {
112110
return Image{}, err
@@ -117,9 +115,9 @@ func getImage(p Prepper) (Image, error) {
117115
logrus.Error("Error retrieving History: ", err)
118116
}
119117

120-
logrus.Infof("Finished prepping image %s", source)
118+
logrus.Infof("Finished prepping image %s", p.GetSource())
121119
return Image{
122-
Source: source,
120+
Source: p.GetSource(),
123121
FSPath: imgPath,
124122
Config: config,
125123
}, nil

pkg/util/tar_prepper.go

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,25 +32,29 @@ type TarPrepper struct {
3232
Client *client.Client
3333
}
3434

35-
func (p TarPrepper) Name() string {
35+
func (p *TarPrepper) Name() string {
3636
return "Tar Archive"
3737
}
3838

39-
func (p TarPrepper) GetSource() string {
39+
func (p *TarPrepper) GetSource() string {
4040
return p.Source
4141
}
4242

43-
func (p TarPrepper) GetImage() (Image, error) {
43+
func (p *TarPrepper) SetSource(source string) {
44+
p.Source = source
45+
}
46+
47+
func (p *TarPrepper) GetImage() (Image, error) {
4448
image, err := getImage(p)
4549
image.Type = ImageTypeTar
4650
return image, err
4751
}
4852

49-
func (p TarPrepper) GetFileSystem() (string, error) {
53+
func (p *TarPrepper) GetFileSystem() (string, error) {
5054
return getImageFromTar(p.Source)
5155
}
5256

53-
func (p TarPrepper) GetConfig() (ConfigSchema, error) {
57+
func (p *TarPrepper) GetConfig() (ConfigSchema, error) {
5458
tempDir, err := ioutil.TempDir("", ".container-diff")
5559
if err != nil {
5660
return ConfigSchema{}, nil

0 commit comments

Comments
 (0)