Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion cmd/katapult/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import (

// Create a new Katapult client.
func newClient(conf *config.Config) (core.RequestMaker, error) {
a := []katapult.Opt{katapult.WithAPIKey(conf.APIToken)}
a := []katapult.Option{katapult.WithAPIKey(conf.APIToken)}
if conf.APIURL != "" {
apiURL, err := url.Parse(conf.APIURL)
if err != nil {
Expand Down
4 changes: 2 additions & 2 deletions cmd/katapult/data_centers.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ import (
)

type dataCentersClient interface {
List(ctx context.Context) ([]*core.DataCenter, *katapult.Response, error)
Get(ctx context.Context, ref core.DataCenterRef) (*core.DataCenter, *katapult.Response, error)
List(ctx context.Context, reqOpts ...katapult.RequestOption) ([]*core.DataCenter, *katapult.Response, error)
Get(ctx context.Context, ref core.DataCenterRef, reqOpts ...katapult.RequestOption) (*core.DataCenter, *katapult.Response, error)
}

//nolint:lll
Expand Down
11 changes: 8 additions & 3 deletions cmd/katapult/main_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ type mockOrganizationsListClient struct {
throws string
}

func (m mockOrganizationsListClient) List(context.Context) ([]*core.Organization, *katapult.Response, error) {
func (m mockOrganizationsListClient) List(context.Context, ...katapult.RequestOption) ([]*core.Organization, *katapult.Response, error) {
if m.throws != "" {
return nil, nil, errors.New(m.throws)
}
Expand All @@ -71,15 +71,15 @@ type mockDataCentersClient struct {
throws string
}

func (m mockDataCentersClient) List(context.Context) ([]*core.DataCenter, *katapult.Response, error) {
func (m mockDataCentersClient) List(context.Context, ...katapult.RequestOption) ([]*core.DataCenter, *katapult.Response, error) {
if m.throws != "" {
return nil, nil, errors.New(m.throws)
}
return m.dcs, nil, nil
}

func (m mockDataCentersClient) Get(
_ context.Context, ref core.DataCenterRef) (*core.DataCenter, *katapult.Response, error) {
_ context.Context, ref core.DataCenterRef, reqOpts ...katapult.RequestOption) (*core.DataCenter, *katapult.Response, error) {
if m.throws != "" {
return nil, nil, errors.New(m.throws)
}
Expand Down Expand Up @@ -124,3 +124,8 @@ var fixtureDataCenters = []*core.DataCenter{
},
},
}

var testRequestOption = katapult.RequestSetHeader(
"X-Clacks-Overhead",
"GNU CK",
)
1 change: 1 addition & 0 deletions cmd/katapult/networks.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ type networksListClient interface {
List(
ctx context.Context,
org core.OrganizationRef,
reqOpts ...katapult.RequestOption,
) ([]*core.Network, []*core.VirtualNetwork, *katapult.Response, error)
}

Expand Down
2 changes: 1 addition & 1 deletion cmd/katapult/networks_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ var idVirtualNetworks = []*core.VirtualNetwork{
type mockNetworkList struct{}

func (mockNetworkList) List(
_ context.Context, org core.OrganizationRef,
_ context.Context, org core.OrganizationRef, reqOpts ...katapult.RequestOption,
) ([]*core.Network, []*core.VirtualNetwork, *katapult.Response, error) {
switch {
case org.SubDomain == "pog-subdomain":
Expand Down
1 change: 1 addition & 0 deletions cmd/katapult/organizations.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import (
type organisationsListClient interface {
List(
ctx context.Context,
reqOpts ...katapult.RequestOption,
) ([]*core.Organization, *katapult.Response, error)
}

Expand Down
12 changes: 12 additions & 0 deletions cmd/katapult/vms.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,26 +20,32 @@ type virtualMachinesClient interface {
ctx context.Context,
org core.OrganizationRef,
opts *core.ListOptions,
reqOpts ...katapult.RequestOption,
) ([]*core.VirtualMachine, *katapult.Response, error)
Delete(
ctx context.Context,
ref core.VirtualMachineRef,
reqOpts ...katapult.RequestOption,
) (*core.TrashObject, *katapult.Response, error)
Shutdown(
ctx context.Context,
ref core.VirtualMachineRef,
reqOpts ...katapult.RequestOption,
) (*core.Task, *katapult.Response, error)
Start(
ctx context.Context,
ref core.VirtualMachineRef,
reqOpts ...katapult.RequestOption,
) (*core.Task, *katapult.Response, error)
Stop(
ctx context.Context,
ref core.VirtualMachineRef,
reqOpts ...katapult.RequestOption,
) (*core.Task, *katapult.Response, error)
Reset(
ctx context.Context,
ref core.VirtualMachineRef,
reqOpts ...katapult.RequestOption,
) (*core.Task, *katapult.Response, error)
}

Expand Down Expand Up @@ -211,6 +217,7 @@ type virtualMachinePackagesClient interface {
List(
ctx context.Context,
opts *core.ListOptions,
reqOpts ...katapult.RequestOption,
) ([]*core.VirtualMachinePackage, *katapult.Response, error)
}

Expand Down Expand Up @@ -253,6 +260,7 @@ type virtualMachineDiskTemplatesClient interface {
ctx context.Context,
org core.OrganizationRef,
opts *core.DiskTemplateListOptions,
reqOpts ...katapult.RequestOption,
) ([]*core.DiskTemplate, *katapult.Response, error)
}

Expand Down Expand Up @@ -330,6 +338,7 @@ type virtualMachineIPAddressesClient interface {
ctx context.Context,
org core.OrganizationRef,
opts *core.ListOptions,
reqOpts ...katapult.RequestOption,
) ([]*core.IPAddress, *katapult.Response, error)
}

Expand All @@ -338,6 +347,7 @@ type sshKeysListClient interface {
ctx context.Context,
org core.OrganizationRef,
opts *core.ListOptions,
reqOpts ...katapult.RequestOption,
) ([]*core.AuthSSHKey, *katapult.Response, error)
}

Expand All @@ -346,6 +356,7 @@ type tagsClient interface {
ctx context.Context,
org core.OrganizationRef,
opts *core.ListOptions,
reqOpts ...katapult.RequestOption,
) ([]*core.Tag, *katapult.Response, error)
}

Expand All @@ -354,6 +365,7 @@ type virtualMachinesBuilderClient interface {
ctx context.Context,
org core.OrganizationRef,
spec *buildspec.VirtualMachineSpec,
reqOpts ...katapult.RequestOption,
) (*core.VirtualMachineBuild, *katapult.Response, error)
}

Expand Down
24 changes: 12 additions & 12 deletions cmd/katapult/vms_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ func (v *vmsClient) togglePowerState(key string, fqdn bool) bool {
return state
}

func (v *vmsClient) List(_ context.Context, org core.OrganizationRef, opts *core.ListOptions) (
func (v *vmsClient) List(_ context.Context, org core.OrganizationRef, opts *core.ListOptions, reqOpts ...katapult.RequestOption) (
[]*core.VirtualMachine, *katapult.Response, error,
) {
// Defines the pages.
Expand Down Expand Up @@ -96,7 +96,7 @@ func (v *vmsClient) ensureFound(ref core.VirtualMachineRef) error {
return nil
}

func (v *vmsClient) Shutdown(_ context.Context, ref core.VirtualMachineRef) (*core.Task, *katapult.Response, error) {
func (v *vmsClient) Shutdown(_ context.Context, ref core.VirtualMachineRef, reqOpts ...katapult.RequestOption) (*core.Task, *katapult.Response, error) {
// Pre-execution checks.
if err := v.ensureFound(ref); err != nil {
return nil, nil, err
Expand All @@ -122,12 +122,12 @@ func (v *vmsClient) Shutdown(_ context.Context, ref core.VirtualMachineRef) (*co
return &core.Task{}, nil, nil
}

func (v *vmsClient) Stop(_ context.Context, ref core.VirtualMachineRef) (*core.Task, *katapult.Response, error) {
func (v *vmsClient) Stop(_ context.Context, ref core.VirtualMachineRef, reqOpts ...katapult.RequestOption) (*core.Task, *katapult.Response, error) {
// Basically acts the same as far as event mocking logic goes.
return v.Shutdown(context.TODO(), ref)
}

func (v *vmsClient) Start(_ context.Context, ref core.VirtualMachineRef) (*core.Task, *katapult.Response, error) {
func (v *vmsClient) Start(_ context.Context, ref core.VirtualMachineRef, reqOpts ...katapult.RequestOption) (*core.Task, *katapult.Response, error) {
// Pre-execution checks.
if err := v.ensureFound(ref); err != nil {
return nil, nil, err
Expand All @@ -153,7 +153,7 @@ func (v *vmsClient) Start(_ context.Context, ref core.VirtualMachineRef) (*core.
return &core.Task{}, nil, nil
}

func (v *vmsClient) Reset(_ context.Context, ref core.VirtualMachineRef) (*core.Task, *katapult.Response, error) {
func (v *vmsClient) Reset(_ context.Context, ref core.VirtualMachineRef, reqOpts ...katapult.RequestOption) (*core.Task, *katapult.Response, error) {
// Pre-execution checks.
if err := v.ensureFound(ref); err != nil {
return nil, nil, err
Expand All @@ -180,7 +180,7 @@ func (v *vmsClient) Reset(_ context.Context, ref core.VirtualMachineRef) (*core.
return nil, nil, nil
}

func (v *vmsClient) Delete(_ context.Context, ref core.VirtualMachineRef) (
func (v *vmsClient) Delete(_ context.Context, ref core.VirtualMachineRef, reqOpts ...katapult.RequestOption) (
*core.TrashObject, *katapult.Response, error,
) {
// Pre-execution checks.
Expand Down Expand Up @@ -703,7 +703,7 @@ type mockSSHKeysClient struct {

func (v mockSSHKeysClient) List(
_ context.Context, org core.OrganizationRef,
opts *core.ListOptions) ([]*core.AuthSSHKey, *katapult.Response, error) {
opts *core.ListOptions, reqOpts ...katapult.RequestOption) ([]*core.AuthSSHKey, *katapult.Response, error) {
// Handle throwing errors.
if v.throws != "" {
return nil, nil, errors.New(v.throws)
Expand Down Expand Up @@ -753,7 +753,7 @@ type mockTagsClient struct {
}

func (v mockTagsClient) List(_ context.Context, org core.OrganizationRef,
opts *core.ListOptions) ([]*core.Tag, *katapult.Response, error) {
opts *core.ListOptions, reqOpts ...katapult.RequestOption) ([]*core.Tag, *katapult.Response, error) {
// Handle throwing errors.
if v.throws != "" {
return nil, nil, errors.New(v.throws)
Expand Down Expand Up @@ -794,7 +794,7 @@ type mockVMPackagesClient struct {
throws string
}

func (m mockVMPackagesClient) List(context.Context, *core.ListOptions) (
func (m mockVMPackagesClient) List(context.Context, *core.ListOptions, ...katapult.RequestOption) (
[]*core.VirtualMachinePackage, *katapult.Response, error) {
if m.throws != "" {
return nil, nil, errors.New(m.throws)
Expand All @@ -811,7 +811,7 @@ type mockDiskTemplatesClient struct {
}

func (m mockDiskTemplatesClient) List(_ context.Context, org core.OrganizationRef,
opts *core.DiskTemplateListOptions) ([]*core.DiskTemplate, *katapult.Response, error) {
opts *core.DiskTemplateListOptions, reqOpts ...katapult.RequestOption) ([]*core.DiskTemplate, *katapult.Response, error) {
if m.throws != "" {
return nil, nil, errors.New(m.throws)
}
Expand Down Expand Up @@ -840,7 +840,7 @@ type mockIPAddressClient struct {
}

func (v mockIPAddressClient) List(_ context.Context, org core.OrganizationRef,
opts *core.ListOptions) ([]*core.IPAddress, *katapult.Response, error) {
opts *core.ListOptions, reqOpts ...katapult.RequestOption) ([]*core.IPAddress, *katapult.Response, error) {
// Handle throwing errors.
if v.throws != "" {
return nil, nil, errors.New(v.throws)
Expand Down Expand Up @@ -884,7 +884,7 @@ type mockVMBuilderClient struct {
}

func (m *mockVMBuilderClient) CreateFromSpec(_ context.Context, org core.OrganizationRef,
spec *buildspec.VirtualMachineSpec) (*core.VirtualMachineBuild, *katapult.Response, error) {
spec *buildspec.VirtualMachineSpec, reqOpts ...katapult.RequestOption) (*core.VirtualMachineBuild, *katapult.Response, error) {
if m.throws != "" {
return nil, nil, errors.New(m.throws)
}
Expand Down
12 changes: 5 additions & 7 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ module github.com/krystal/katapult-cli
go 1.16

require (
github.com/augurysys/timestamp v0.0.0-20190827071116-44c56d926547
github.com/augurysys/timestamp v0.3.2
github.com/buger/goterm v1.0.1
github.com/fsnotify/fsnotify v1.4.9 // indirect
github.com/krystal/go-katapult v0.1.6-0.20210803112233-232e29436452
github.com/krystal/go-katapult v0.2.0
github.com/magiconair/properties v1.8.4 // indirect
github.com/mattn/go-runewidth v0.0.10 // indirect
github.com/mitchellh/mapstructure v1.3.3 // indirect
Expand All @@ -18,10 +18,8 @@ require (
github.com/spf13/jwalterweatherman v1.1.0 // indirect
github.com/spf13/pflag v1.0.5
github.com/spf13/viper v1.7.1
github.com/stretchr/testify v1.7.0
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1 // indirect
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1
golang.org/x/text v0.3.4 // indirect
github.com/stretchr/testify v1.8.2
golang.org/x/term v0.5.0
gopkg.in/ini.v1 v1.62.0 // indirect
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b
gopkg.in/yaml.v3 v3.0.1
)
Loading