mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Merge pull request #43579 from thaJeztah/remove_dead_code
Remove dead code
This commit is contained in:
commit
b1e30e8328
5 changed files with 1 additions and 241 deletions
|
@ -1,51 +0,0 @@
|
||||||
package metadata // import "github.com/docker/docker/distribution/metadata"
|
|
||||||
|
|
||||||
import (
|
|
||||||
v1 "github.com/docker/docker/image/v1"
|
|
||||||
"github.com/docker/docker/layer"
|
|
||||||
"github.com/pkg/errors"
|
|
||||||
)
|
|
||||||
|
|
||||||
// V1IDService maps v1 IDs to layers on disk.
|
|
||||||
type V1IDService struct {
|
|
||||||
store Store
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewV1IDService creates a new V1 ID mapping service.
|
|
||||||
func NewV1IDService(store Store) *V1IDService {
|
|
||||||
return &V1IDService{
|
|
||||||
store: store,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// namespace returns the namespace used by this service.
|
|
||||||
func (idserv *V1IDService) namespace() string {
|
|
||||||
return "v1id"
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get finds a layer by its V1 ID.
|
|
||||||
func (idserv *V1IDService) Get(v1ID, registry string) (layer.DiffID, error) {
|
|
||||||
if idserv.store == nil {
|
|
||||||
return "", errors.New("no v1IDService storage")
|
|
||||||
}
|
|
||||||
if err := v1.ValidateID(v1ID); err != nil {
|
|
||||||
return layer.DiffID(""), err
|
|
||||||
}
|
|
||||||
|
|
||||||
idBytes, err := idserv.store.Get(idserv.namespace(), registry+","+v1ID)
|
|
||||||
if err != nil {
|
|
||||||
return layer.DiffID(""), err
|
|
||||||
}
|
|
||||||
return layer.DiffID(idBytes), nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set associates an image with a V1 ID.
|
|
||||||
func (idserv *V1IDService) Set(v1ID, registry string, id layer.DiffID) error {
|
|
||||||
if idserv.store == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
if err := v1.ValidateID(v1ID); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return idserv.store.Set(idserv.namespace(), registry+","+v1ID, []byte(id))
|
|
||||||
}
|
|
|
@ -1,87 +0,0 @@
|
||||||
package metadata // import "github.com/docker/docker/distribution/metadata"
|
|
||||||
|
|
||||||
import (
|
|
||||||
"os"
|
|
||||||
"testing"
|
|
||||||
|
|
||||||
"github.com/docker/docker/layer"
|
|
||||||
"gotest.tools/v3/assert"
|
|
||||||
)
|
|
||||||
|
|
||||||
func TestV1IDService(t *testing.T) {
|
|
||||||
tmpDir, err := os.MkdirTemp("", "v1-id-service-test")
|
|
||||||
if err != nil {
|
|
||||||
t.Fatalf("could not create temp dir: %v", err)
|
|
||||||
}
|
|
||||||
defer os.RemoveAll(tmpDir)
|
|
||||||
|
|
||||||
metadataStore, err := NewFSMetadataStore(tmpDir)
|
|
||||||
if err != nil {
|
|
||||||
t.Fatalf("could not create metadata store: %v", err)
|
|
||||||
}
|
|
||||||
v1IDService := NewV1IDService(metadataStore)
|
|
||||||
|
|
||||||
ns := v1IDService.namespace()
|
|
||||||
|
|
||||||
assert.Equal(t, "v1id", ns)
|
|
||||||
|
|
||||||
testVectors := []struct {
|
|
||||||
registry string
|
|
||||||
v1ID string
|
|
||||||
layerID layer.DiffID
|
|
||||||
}{
|
|
||||||
{
|
|
||||||
registry: "registry1",
|
|
||||||
v1ID: "f0cd5ca10b07f35512fc2f1cbf9a6cefbdb5cba70ac6b0c9e5988f4497f71937",
|
|
||||||
layerID: layer.DiffID("sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4"),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
registry: "registry2",
|
|
||||||
v1ID: "9e3447ca24cb96d86ebd5960cb34d1299b07e0a0e03801d90b9969a2c187dd6e",
|
|
||||||
layerID: layer.DiffID("sha256:86e0e091d0da6bde2456dbb48306f3956bbeb2eae1b5b9a43045843f69fe4aaa"),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
registry: "registry1",
|
|
||||||
v1ID: "9e3447ca24cb96d86ebd5960cb34d1299b07e0a0e03801d90b9969a2c187dd6e",
|
|
||||||
layerID: layer.DiffID("sha256:03f4658f8b782e12230c1783426bd3bacce651ce582a4ffb6fbbfa2079428ecb"),
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set some associations
|
|
||||||
for _, vec := range testVectors {
|
|
||||||
err := v1IDService.Set(vec.v1ID, vec.registry, vec.layerID)
|
|
||||||
if err != nil {
|
|
||||||
t.Fatalf("error calling Set: %v", err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check the correct values are read back
|
|
||||||
for _, vec := range testVectors {
|
|
||||||
layerID, err := v1IDService.Get(vec.v1ID, vec.registry)
|
|
||||||
if err != nil {
|
|
||||||
t.Fatalf("error calling Get: %v", err)
|
|
||||||
}
|
|
||||||
if layerID != vec.layerID {
|
|
||||||
t.Fatal("Get returned incorrect layer ID")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Test Get on a nonexistent entry
|
|
||||||
_, err = v1IDService.Get("82379823067823853223359023576437723560923756b03560378f4497753917", "registry1")
|
|
||||||
if err == nil {
|
|
||||||
t.Fatal("expected error looking up nonexistent entry")
|
|
||||||
}
|
|
||||||
|
|
||||||
// Overwrite one of the entries and read it back
|
|
||||||
err = v1IDService.Set(testVectors[0].v1ID, testVectors[0].registry, testVectors[1].layerID)
|
|
||||||
if err != nil {
|
|
||||||
t.Fatalf("error calling Set: %v", err)
|
|
||||||
}
|
|
||||||
layerID, err := v1IDService.Get(testVectors[0].v1ID, testVectors[0].registry)
|
|
||||||
if err != nil {
|
|
||||||
t.Fatalf("error calling Get: %v", err)
|
|
||||||
}
|
|
||||||
if layerID != testVectors[1].layerID {
|
|
||||||
t.Fatal("Get returned incorrect layer ID")
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -2,7 +2,6 @@ package v1 // import "github.com/docker/docker/image/v1"
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"reflect"
|
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/docker/docker/api/types/versions"
|
"github.com/docker/docker/api/types/versions"
|
||||||
|
@ -16,7 +15,7 @@ import (
|
||||||
// noFallbackMinVersion is the minimum version for which v1compatibility
|
// noFallbackMinVersion is the minimum version for which v1compatibility
|
||||||
// information will not be marshaled through the Image struct to remove
|
// information will not be marshaled through the Image struct to remove
|
||||||
// blank fields.
|
// blank fields.
|
||||||
var noFallbackMinVersion = "1.8.3"
|
const noFallbackMinVersion = "1.8.3"
|
||||||
|
|
||||||
// HistoryFromConfig creates a History struct from v1 configuration JSON
|
// HistoryFromConfig creates a History struct from v1 configuration JSON
|
||||||
func HistoryFromConfig(imageJSON []byte, emptyLayer bool) (image.History, error) {
|
func HistoryFromConfig(imageJSON []byte, emptyLayer bool) (image.History, error) {
|
||||||
|
@ -106,36 +105,6 @@ func MakeConfigFromV1Config(imageJSON []byte, rootfs *image.RootFS, history []im
|
||||||
return json.Marshal(c)
|
return json.Marshal(c)
|
||||||
}
|
}
|
||||||
|
|
||||||
// MakeV1ConfigFromConfig creates a legacy V1 image config from an Image struct
|
|
||||||
func MakeV1ConfigFromConfig(img *image.Image, v1ID, parentV1ID string, throwaway bool) ([]byte, error) {
|
|
||||||
// Top-level v1compatibility string should be a modified version of the
|
|
||||||
// image config.
|
|
||||||
var configAsMap map[string]*json.RawMessage
|
|
||||||
if err := json.Unmarshal(img.RawJSON(), &configAsMap); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete fields that didn't exist in old manifest
|
|
||||||
imageType := reflect.TypeOf(img).Elem()
|
|
||||||
for i := 0; i < imageType.NumField(); i++ {
|
|
||||||
f := imageType.Field(i)
|
|
||||||
jsonName := strings.Split(f.Tag.Get("json"), ",")[0]
|
|
||||||
// Parent is handled specially below.
|
|
||||||
if jsonName != "" && jsonName != "parent" {
|
|
||||||
delete(configAsMap, jsonName)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
configAsMap["id"] = rawJSON(v1ID)
|
|
||||||
if parentV1ID != "" {
|
|
||||||
configAsMap["parent"] = rawJSON(parentV1ID)
|
|
||||||
}
|
|
||||||
if throwaway {
|
|
||||||
configAsMap["throwaway"] = rawJSON(true)
|
|
||||||
}
|
|
||||||
|
|
||||||
return json.Marshal(configAsMap)
|
|
||||||
}
|
|
||||||
|
|
||||||
func rawJSON(value interface{}) *json.RawMessage {
|
func rawJSON(value interface{}) *json.RawMessage {
|
||||||
jsonval, err := json.Marshal(value)
|
jsonval, err := json.Marshal(value)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
@ -1,55 +0,0 @@
|
||||||
package v1 // import "github.com/docker/docker/image/v1"
|
|
||||||
|
|
||||||
import (
|
|
||||||
"encoding/json"
|
|
||||||
"testing"
|
|
||||||
|
|
||||||
"github.com/docker/docker/image"
|
|
||||||
)
|
|
||||||
|
|
||||||
func TestMakeV1ConfigFromConfig(t *testing.T) {
|
|
||||||
img := &image.Image{
|
|
||||||
V1Image: image.V1Image{
|
|
||||||
ID: "v2id",
|
|
||||||
Parent: "v2parent",
|
|
||||||
OS: "os",
|
|
||||||
},
|
|
||||||
OSVersion: "osversion",
|
|
||||||
RootFS: &image.RootFS{
|
|
||||||
Type: "layers",
|
|
||||||
},
|
|
||||||
}
|
|
||||||
v2js, err := json.Marshal(img)
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Convert the image back in order to get RawJSON() support.
|
|
||||||
img, err = image.NewFromJSON(v2js)
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
js, err := MakeV1ConfigFromConfig(img, "v1id", "v1parent", false)
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
newimg := &image.Image{}
|
|
||||||
err = json.Unmarshal(js, newimg)
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
if newimg.V1Image.ID != "v1id" || newimg.Parent != "v1parent" {
|
|
||||||
t.Error("ids should have changed", newimg.V1Image.ID, newimg.V1Image.Parent)
|
|
||||||
}
|
|
||||||
|
|
||||||
if newimg.RootFS != nil {
|
|
||||||
t.Error("rootfs should have been removed")
|
|
||||||
}
|
|
||||||
|
|
||||||
if newimg.V1Image.OS != "os" {
|
|
||||||
t.Error("os should have been preserved")
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,7 +1,5 @@
|
||||||
package registry
|
package registry
|
||||||
|
|
||||||
import "io"
|
|
||||||
|
|
||||||
// Schema1 sets the registry to serve v1 api
|
// Schema1 sets the registry to serve v1 api
|
||||||
func Schema1(c *Config) {
|
func Schema1(c *Config) {
|
||||||
c.schema1 = true
|
c.schema1 = true
|
||||||
|
@ -26,17 +24,3 @@ func URL(registryURL string) func(*Config) {
|
||||||
c.registryURL = registryURL
|
c.registryURL = registryURL
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// WithStdout sets the stdout of the registry command to the passed in writer.
|
|
||||||
func WithStdout(w io.Writer) func(c *Config) {
|
|
||||||
return func(c *Config) {
|
|
||||||
c.stdout = w
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithStderr sets the stdout of the registry command to the passed in writer.
|
|
||||||
func WithStderr(w io.Writer) func(c *Config) {
|
|
||||||
return func(c *Config) {
|
|
||||||
c.stderr = w
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in a new issue