Skip to content

Commit 8cae449

Browse files
committed
docr: Create new Registries service for multiple-registry endpoints
1 parent 70d4a88 commit 8cae449

File tree

3 files changed

+39
-27
lines changed

3 files changed

+39
-27
lines changed

godo.go

+2
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ type Client struct {
8080
Projects ProjectsService
8181
Regions RegionsService
8282
Registry RegistryService
83+
Registries RegistriesService
8384
ReservedIPs ReservedIPsService
8485
ReservedIPActions ReservedIPActionsService
8586
Sizes SizesService
@@ -290,6 +291,7 @@ func NewClient(httpClient *http.Client) *Client {
290291
c.Projects = &ProjectsServiceOp{client: c}
291292
c.Regions = &RegionsServiceOp{client: c}
292293
c.Registry = &RegistryServiceOp{client: c}
294+
c.Registries = &RegistriesServiceOp{client: c}
293295
c.ReservedIPs = &ReservedIPsServiceOp{client: c}
294296
c.ReservedIPActions = &ReservedIPActionsServiceOp{client: c}
295297
c.Sizes = &SizesServiceOp{client: c}

registry.go

+26-16
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,6 @@ type RegistryService interface {
4141
GetSubscription(context.Context) (*RegistrySubscription, *Response, error)
4242
UpdateSubscription(context.Context, *RegistrySubscriptionUpdateRequest) (*RegistrySubscription, *Response, error)
4343
ValidateName(context.Context, *RegistryValidateNameRequest) (*Response, error)
44-
45-
// Multi-registry Open Beta API methods
46-
GetBeta(context.Context, string) (*Registry, *Response, error)
47-
ListBeta(context.Context) ([]*Registry, *Response, error)
48-
CreateBeta(context.Context, *RegistriesCreateRequest) (*Registry, *Response, error)
49-
DeleteBeta(context.Context, string) (*Response, error)
50-
DockerCredentialsBeta(context.Context, string, *RegistryDockerCredentialsRequest) (*DockerCredentials, *Response, error)
5144
}
5245

5346
var _ RegistryService = &RegistryServiceOp{}
@@ -634,10 +627,27 @@ func (svc *RegistryServiceOp) ValidateName(ctx context.Context, request *Registr
634627
return resp, nil
635628
}
636629

637-
// Multi-registry Open Beta API endpoints
630+
// RegistriesService is an interface for interfacing with the new multiple-registry beta endpoints
631+
// of the DigitalOcean API.
632+
//
633+
// We are creating a separate Service in alignment with the new /v2/registries endpoints.
634+
type RegistriesService interface {
635+
Get(context.Context, string) (*Registry, *Response, error)
636+
List(context.Context) ([]*Registry, *Response, error)
637+
Create(context.Context, *RegistriesCreateRequest) (*Registry, *Response, error)
638+
Delete(context.Context, string) (*Response, error)
639+
DockerCredentials(context.Context, string, *RegistryDockerCredentialsRequest) (*DockerCredentials, *Response, error)
640+
}
641+
642+
var _ RegistriesService = &RegistriesServiceOp{}
643+
644+
// RegistriesServiceOp handles communication with the multiple-registry beta methods.
645+
type RegistriesServiceOp struct {
646+
client *Client
647+
}
638648

639-
// GetBeta returns the details of a named Registry.
640-
func (svc *RegistryServiceOp) GetBeta(ctx context.Context, registry string) (*Registry, *Response, error) {
649+
// Get returns the details of a named Registry.
650+
func (svc *RegistriesServiceOp) Get(ctx context.Context, registry string) (*Registry, *Response, error) {
641651
path := fmt.Sprintf("%s/%s", registriesPath, registry)
642652
req, err := svc.client.NewRequest(ctx, http.MethodGet, path, nil)
643653
if err != nil {
@@ -651,8 +661,8 @@ func (svc *RegistryServiceOp) GetBeta(ctx context.Context, registry string) (*Re
651661
return root.Registry, resp, nil
652662
}
653663

654-
// ListBeta returns a list of the named Registries.
655-
func (svc *RegistryServiceOp) ListBeta(ctx context.Context) ([]*Registry, *Response, error) {
664+
// List returns a list of the named Registries.
665+
func (svc *RegistriesServiceOp) List(ctx context.Context) ([]*Registry, *Response, error) {
656666
req, err := svc.client.NewRequest(ctx, http.MethodGet, registriesPath, nil)
657667
if err != nil {
658668
return nil, nil, err
@@ -665,8 +675,8 @@ func (svc *RegistryServiceOp) ListBeta(ctx context.Context) ([]*Registry, *Respo
665675
return root.Registries, resp, nil
666676
}
667677

668-
// CreateBeta creates a named Registry.
669-
func (svc *RegistryServiceOp) CreateBeta(ctx context.Context, create *RegistriesCreateRequest) (*Registry, *Response, error) {
678+
// Create creates a named Registry.
679+
func (svc *RegistriesServiceOp) Create(ctx context.Context, create *RegistriesCreateRequest) (*Registry, *Response, error) {
670680
req, err := svc.client.NewRequest(ctx, http.MethodPost, registriesPath, create)
671681
if err != nil {
672682
return nil, nil, err
@@ -681,7 +691,7 @@ func (svc *RegistryServiceOp) CreateBeta(ctx context.Context, create *Registries
681691

682692
// Delete deletes a named Registry. There is no way to recover a Registry once it has
683693
// been destroyed.
684-
func (svc *RegistryServiceOp) DeleteBeta(ctx context.Context, registry string) (*Response, error) {
694+
func (svc *RegistriesServiceOp) Delete(ctx context.Context, registry string) (*Response, error) {
685695
path := fmt.Sprintf("%s/%s", registriesPath, registry)
686696
req, err := svc.client.NewRequest(ctx, http.MethodDelete, path, nil)
687697
if err != nil {
@@ -695,7 +705,7 @@ func (svc *RegistryServiceOp) DeleteBeta(ctx context.Context, registry string) (
695705
}
696706

697707
// DockerCredentials retrieves a Docker config file containing named Registry's credentials.
698-
func (svc *RegistryServiceOp) DockerCredentialsBeta(ctx context.Context, registry string, request *RegistryDockerCredentialsRequest) (*DockerCredentials, *Response, error) {
708+
func (svc *RegistriesServiceOp) DockerCredentials(ctx context.Context, registry string, request *RegistryDockerCredentialsRequest) (*DockerCredentials, *Response, error) {
699709
path := fmt.Sprintf("%s/%s/%s", registriesPath, registry, "docker-credentials")
700710
req, err := svc.client.NewRequest(ctx, http.MethodGet, path, nil)
701711
if err != nil {

registry_test.go

+11-11
Original file line numberDiff line numberDiff line change
@@ -966,7 +966,8 @@ func TestRegistry_ValidateName(t *testing.T) {
966966
require.NoError(t, err)
967967
}
968968

969-
func TestRegistries_GetBeta(t *testing.T) {
969+
// Tests for Registries service methods
970+
func TestRegistries_Get(t *testing.T) {
970971
setup()
971972
defer teardown()
972973

@@ -994,13 +995,12 @@ func TestRegistries_GetBeta(t *testing.T) {
994995
testMethod(t, r, http.MethodGet)
995996
fmt.Fprint(w, getResponseJSON)
996997
})
997-
got, _, err := client.Registry.GetBeta(ctx, testRegistry)
998+
got, _, err := client.Registries.Get(ctx, testRegistry)
998999
require.NoError(t, err)
9991000
require.Equal(t, want, got)
10001001
}
10011002

1002-
// TODO: Fix following test
1003-
func TestRegistries_ListBeta(t *testing.T) {
1003+
func TestRegistries_List(t *testing.T) {
10041004
setup()
10051005
defer teardown()
10061006

@@ -1031,14 +1031,14 @@ func TestRegistries_ListBeta(t *testing.T) {
10311031
fmt.Printf("Returning: %v", getResponseJSON)
10321032
fmt.Fprint(w, getResponseJSON)
10331033
})
1034-
got, _, err := client.Registry.ListBeta(ctx)
1034+
got, _, err := client.Registries.List(ctx)
10351035
require.NoError(t, err)
10361036
fmt.Printf("Expected: %+v\n", wantRegistries)
10371037
fmt.Printf("Got: %+v\n", got)
10381038
require.Equal(t, wantRegistries, got)
10391039
}
10401040

1041-
func TestRegistries_CreateBeta(t *testing.T) {
1041+
func TestRegistries_Create(t *testing.T) {
10421042
setup()
10431043
defer teardown()
10441044

@@ -1078,24 +1078,24 @@ func TestRegistries_CreateBeta(t *testing.T) {
10781078
fmt.Fprint(w, createResponseJSON)
10791079
})
10801080

1081-
got, _, err := client.Registry.CreateBeta(ctx, createRequest)
1081+
got, _, err := client.Registries.Create(ctx, createRequest)
10821082
require.NoError(t, err)
10831083
require.Equal(t, want, got)
10841084
}
10851085

1086-
func TestRegistries_DeleteBeta(t *testing.T) {
1086+
func TestRegistries_Delete(t *testing.T) {
10871087
setup()
10881088
defer teardown()
10891089

10901090
mux.HandleFunc(fmt.Sprintf("/v2/registries/%s", testRegistry), func(w http.ResponseWriter, r *http.Request) {
10911091
testMethod(t, r, http.MethodDelete)
10921092
})
10931093

1094-
_, err := client.Registry.DeleteBeta(ctx, testRegistry)
1094+
_, err := client.Registries.Delete(ctx, testRegistry)
10951095
require.NoError(t, err)
10961096
}
10971097

1098-
func TestRegistries_DockerCredentialsBeta(t *testing.T) {
1098+
func TestRegistries_DockerCredentials(t *testing.T) {
10991099
returnedConfig := "this could be a docker config"
11001100
tests := []struct {
11011101
name string
@@ -1139,7 +1139,7 @@ func TestRegistries_DockerCredentialsBeta(t *testing.T) {
11391139
fmt.Fprint(w, returnedConfig)
11401140
})
11411141

1142-
got, _, err := client.Registry.DockerCredentialsBeta(ctx, testRegistry, test.params)
1142+
got, _, err := client.Registries.DockerCredentials(ctx, testRegistry, test.params)
11431143
fmt.Println(returnedConfig)
11441144
require.NoError(t, err)
11451145
require.Equal(t, []byte(returnedConfig), got.DockerConfigJSON)

0 commit comments

Comments
 (0)