Skip to content

Commit 8c0cf95

Browse files
authored
refactor: refactor the backend storage from zot to distribution (#35)
Signed-off-by: chlins <[email protected]>
1 parent b4769c9 commit 8c0cf95

File tree

18 files changed

+523
-1589
lines changed

18 files changed

+523
-1589
lines changed

cmd/prune.go

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,14 @@ import (
2121
"fmt"
2222

2323
"github.com/CloudNativeAI/modctl/pkg/backend"
24+
"github.com/CloudNativeAI/modctl/pkg/config"
2425

2526
"github.com/spf13/cobra"
2627
"github.com/spf13/viper"
2728
)
2829

30+
var pruneConfig = config.NewPrune()
31+
2932
// pruneCmd represents the modctl command for prune.
3033
var pruneCmd = &cobra.Command{
3134
Use: "prune [flags]",
@@ -42,6 +45,8 @@ var pruneCmd = &cobra.Command{
4245
// init initializes prune command.
4346
func init() {
4447
flags := rmCmd.Flags()
48+
flags.BoolVar(&pruneConfig.DryRun, "dry-run", false, "do not remove any blobs, just print what would be removed")
49+
flags.BoolVar(&pruneConfig.RemoveUntagged, "remove-untagged", true, "remove untagged manifests")
4550

4651
if err := viper.BindPFlags(flags); err != nil {
4752
panic(fmt.Errorf("bind cache rm flags to viper: %w", err))
@@ -55,15 +60,5 @@ func runPrune(ctx context.Context) error {
5560
return err
5661
}
5762

58-
prunedBlobs, err := b.Prune(ctx)
59-
if err != nil {
60-
return err
61-
}
62-
63-
fmt.Println("Deleted Blobs:")
64-
for _, blob := range prunedBlobs {
65-
fmt.Printf("deleted: %s\n", blob)
66-
}
67-
68-
return nil
63+
return b.Prune(ctx, pruneConfig.DryRun, pruneConfig.RemoveUntagged)
6964
}

cmd/pull.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ var pullCmd = &cobra.Command{
4545
// init initializes pull command.
4646
func init() {
4747
flags := pullCmd.Flags()
48-
flags.BoolVarP(&pullConfig.PlainHTTP, "plain-http", "p", false, "use plain HTTP instead of HTTPS")
48+
flags.BoolVar(&pullConfig.PlainHTTP, "plain-http", false, "use plain HTTP instead of HTTPS")
4949
flags.StringVar(&pullConfig.Proxy, "proxy", "", "use proxy for the pull operation")
5050

5151
if err := viper.BindPFlags(flags); err != nil {

cmd/push.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ var pushCmd = &cobra.Command{
4545
// init initializes push command.
4646
func init() {
4747
flags := pushCmd.Flags()
48-
flags.BoolVarP(&pushConfig.PlainHTTP, "plain-http", "p", false, "use plain HTTP instead of HTTPS")
48+
flags.BoolVar(&pushConfig.PlainHTTP, "plain-http", false, "use plain HTTP instead of HTTPS")
4949

5050
if err := viper.BindPFlags(flags); err != nil {
5151
panic(fmt.Errorf("bind cache push flags to viper: %w", err))

go.mod

Lines changed: 17 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ go 1.23.3
44

55
require (
66
github.com/CloudNativeAI/model-spec v0.0.0-20241121031550-59ad02d4a225
7+
github.com/distribution/distribution/v3 v3.0.0-rc.1
78
github.com/distribution/reference v0.6.0
89
github.com/dustin/go-humanize v1.0.1
910
github.com/emirpasic/gods v1.18.1
@@ -16,67 +17,37 @@ require (
1617
github.com/vbauerster/mpb/v8 v8.8.3
1718
golang.org/x/crypto v0.29.0
1819
oras.land/oras-go/v2 v2.5.0
19-
zotregistry.dev/zot v1.4.4-0.20241020091450-edb549142830
2020
)
2121

2222
require (
2323
github.com/VividCortex/ewma v1.2.0 // indirect
2424
github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d // indirect
25-
github.com/aws/aws-sdk-go v1.55.5 // indirect
26-
github.com/aws/aws-sdk-go-v2 v1.32.2 // indirect
27-
github.com/aws/aws-sdk-go-v2/config v1.27.43 // indirect
28-
github.com/aws/aws-sdk-go-v2/credentials v1.17.41 // indirect
29-
github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue v1.15.12 // indirect
30-
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.17 // indirect
31-
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.21 // indirect
32-
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.21 // indirect
33-
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect
34-
github.com/aws/aws-sdk-go-v2/service/dynamodb v1.36.2 // indirect
35-
github.com/aws/aws-sdk-go-v2/service/dynamodbstreams v1.24.2 // indirect
36-
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0 // indirect
37-
github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.10.2 // indirect
38-
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.2 // indirect
39-
github.com/aws/aws-sdk-go-v2/service/sso v1.24.2 // indirect
40-
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.2 // indirect
41-
github.com/aws/aws-sdk-go-v2/service/sts v1.32.2 // indirect
42-
github.com/aws/smithy-go v1.22.0 // indirect
4325
github.com/beorn7/perks v1.0.1 // indirect
44-
github.com/bmatcuk/doublestar/v4 v4.7.1 // indirect
4526
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
4627
github.com/cespare/xxhash/v2 v2.3.0 // indirect
4728
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
48-
github.com/distribution/distribution/v3 v3.0.0-beta.1.0.20240729175644-f0bd0f689923 // indirect
4929
github.com/docker/go-metrics v0.0.1 // indirect
5030
github.com/fsnotify/fsnotify v1.7.0 // indirect
5131
github.com/go-logr/logr v1.4.2 // indirect
5232
github.com/go-logr/stdr v1.2.2 // indirect
53-
github.com/gofrs/uuid v4.4.0+incompatible // indirect
5433
github.com/google/uuid v1.6.0 // indirect
5534
github.com/gorilla/mux v1.8.2-0.20240619235004-db9d1d0073d2 // indirect
5635
github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 // indirect
36+
github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect
5737
github.com/hashicorp/hcl v1.0.1-vault-5 // indirect
5838
github.com/inconshreveable/mousetrap v1.1.0 // indirect
59-
github.com/jmespath/go-jmespath v0.4.0 // indirect
60-
github.com/json-iterator/go v1.1.12 // indirect
6139
github.com/klauspost/compress v1.17.9 // indirect
6240
github.com/magiconair/properties v1.8.7 // indirect
63-
github.com/mattn/go-colorable v0.1.13 // indirect
64-
github.com/mattn/go-isatty v0.0.20 // indirect
6541
github.com/mattn/go-runewidth v0.0.16 // indirect
6642
github.com/mitchellh/mapstructure v1.5.0 // indirect
67-
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
68-
github.com/modern-go/reflect2 v1.0.2 // indirect
6943
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
70-
github.com/olekukonko/tablewriter v0.0.5 // indirect
71-
github.com/opencontainers/distribution-spec/specs-go v0.0.0-20240201174943-0f98d91a0afe // indirect
7244
github.com/pelletier/go-toml/v2 v2.2.2 // indirect
7345
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
7446
github.com/prometheus/client_golang v1.20.4 // indirect
7547
github.com/prometheus/client_model v0.6.1 // indirect
7648
github.com/prometheus/common v0.55.0 // indirect
7749
github.com/prometheus/procfs v0.15.1 // indirect
7850
github.com/rivo/uniseg v0.4.7 // indirect
79-
github.com/rs/zerolog v1.33.0 // indirect
8051
github.com/sagikazarmark/locafero v0.6.0 // indirect
8152
github.com/sagikazarmark/slog-shim v0.1.0 // indirect
8253
github.com/sourcegraph/conc v0.3.0 // indirect
@@ -85,28 +56,24 @@ require (
8556
github.com/spf13/pflag v1.0.5 // indirect
8657
github.com/stretchr/objx v0.5.2 // indirect
8758
github.com/subosito/gotenv v1.6.0 // indirect
88-
github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect
89-
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect
90-
github.com/xeipuuv/gojsonschema v1.2.0 // indirect
91-
go.etcd.io/bbolt v1.3.11 // indirect
92-
go.opentelemetry.io/contrib/bridges/prometheus v0.53.0 // indirect
93-
go.opentelemetry.io/contrib/exporters/autoexport v0.53.0 // indirect
59+
go.opentelemetry.io/contrib/bridges/prometheus v0.54.0 // indirect
60+
go.opentelemetry.io/contrib/exporters/autoexport v0.54.0 // indirect
9461
go.opentelemetry.io/otel v1.29.0 // indirect
95-
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.4.0 // indirect
96-
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.28.0 // indirect
97-
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.28.0 // indirect
62+
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.5.0 // indirect
63+
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.29.0 // indirect
64+
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.29.0 // indirect
9865
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.29.0 // indirect
9966
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.29.0 // indirect
100-
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.28.0 // indirect
101-
go.opentelemetry.io/otel/exporters/prometheus v0.50.0 // indirect
102-
go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.4.0 // indirect
103-
go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.28.0 // indirect
104-
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.28.0 // indirect
105-
go.opentelemetry.io/otel/log v0.4.0 // indirect
67+
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.29.0 // indirect
68+
go.opentelemetry.io/otel/exporters/prometheus v0.51.0 // indirect
69+
go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.5.0 // indirect
70+
go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.29.0 // indirect
71+
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.29.0 // indirect
72+
go.opentelemetry.io/otel/log v0.5.0 // indirect
10673
go.opentelemetry.io/otel/metric v1.29.0 // indirect
10774
go.opentelemetry.io/otel/sdk v1.29.0 // indirect
108-
go.opentelemetry.io/otel/sdk/log v0.4.0 // indirect
109-
go.opentelemetry.io/otel/sdk/metric v1.28.0 // indirect
75+
go.opentelemetry.io/otel/sdk/log v0.5.0 // indirect
76+
go.opentelemetry.io/otel/sdk/metric v1.29.0 // indirect
11077
go.opentelemetry.io/otel/trace v1.29.0 // indirect
11178
go.opentelemetry.io/proto/otlp v1.3.1 // indirect
11279
go.uber.org/multierr v1.11.0 // indirect
@@ -116,9 +83,9 @@ require (
11683
golang.org/x/sys v0.27.0 // indirect
11784
golang.org/x/term v0.26.0 // indirect
11885
golang.org/x/text v0.20.0 // indirect
119-
google.golang.org/genproto/googleapis/api v0.0.0-20240827150818-7e3bb234dfed // indirect
86+
google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 // indirect
12087
google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 // indirect
121-
google.golang.org/grpc v1.66.0 // indirect
88+
google.golang.org/grpc v1.66.2 // indirect
12289
google.golang.org/protobuf v1.35.1 // indirect
12390
gopkg.in/ini.v1 v1.67.0 // indirect
12491
gopkg.in/yaml.v3 v3.0.1 // indirect

0 commit comments

Comments
 (0)