Skip to content

Commit efa50bf

Browse files
committed
merge upstream
2 parents 9ff773e + 14bd75b commit efa50bf

6 files changed

Lines changed: 107 additions & 7 deletions

File tree

CHANGELOG.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,14 @@
55
### Breaking:
66

77
### Enhancements:
8+
- feat(config-store): Allow for dynamic limits on Config Store entry lengths [#1485](https://github.com/fastly/cli/pull/1485)
9+
- feat(backend): Add support for 'prefer IPv6' attribute. ([#1487](https://github.com/fastly/cli/pull/1487))
810
- feat(Domain Discovery): add `suggest` and `status` domain tools endpoints ([#1482](https://github.com/fastly/cli/pull/1482))
911

1012
### Bug fixes:
1113

1214
### Dependencies:
13-
- build(deps): `github.com/fastly/go-fastly/v10` from 10.0.1 to 10.1.0 ([#1467](https://github.com/fastly/cli/pull/1476))
15+
- build(deps): `github.com/fastly/go-fastly/v10` from 10.0.1 to 10.1.0 ([#1476](https://github.com/fastly/cli/pull/1476))
1416
- build(deps): `github.com/fastly/go-fastly/v10` from 10.0.0 to 10.0.1 ([#1467](https://github.com/fastly/cli/pull/1467))
1517
- build(deps): `golang.org/x/net` from 0.37.0 to 0.39.0 ([#1467](https://github.com/fastly/cli/pull/1467))
1618
- build(go.mod): upgrade to go 1.24.0 in order to take advantage of the new tooling mechanism ([#1469](https://github.com/fastly/cli/pull/1469))

pkg/commands/backend/backend_test.go

Lines changed: 59 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,32 @@ func TestBackendCreate(t *testing.T) {
177177
ListVersionsFn: testutil.ListVersions,
178178
CreateBackendFn: createBackendOK,
179179
},
180-
WantError: "'tcp-ka-enable' flag must be one of the following [true, false]",
180+
WantError: "'tcp-ka-enabled' flag must be one of the following [true, false]",
181+
},
182+
// The following tests verify parsing of the --prefer-ipv6 flag.
183+
{
184+
Args: "--service-id 123 --version 3 --address 127.0.0.1 --name www.test.com --prefer-ipv6=true",
185+
API: mock.API{
186+
ListVersionsFn: testutil.ListVersions,
187+
CreateBackendFn: createBackendOK,
188+
},
189+
WantOutput: "Created backend www.test.com (service 123 version 3)",
190+
},
191+
{
192+
Args: "--service-id 123 --version 3 --address 127.0.0.1 --name www.test.com --prefer-ipv6=false",
193+
API: mock.API{
194+
ListVersionsFn: testutil.ListVersions,
195+
CreateBackendFn: createBackendOK,
196+
},
197+
WantOutput: "Created backend www.test.com (service 123 version 3)",
198+
},
199+
{
200+
Args: "--service-id 123 --version 3 --address 127.0.0.1 --name www.test.com --prefer-ipv6=invalid",
201+
API: mock.API{
202+
ListVersionsFn: testutil.ListVersions,
203+
CreateBackendFn: createBackendOK,
204+
},
205+
WantError: "'prefer-ipv6' flag must be one of the following [true, false]",
181206
},
182207
}
183208
testutil.RunCLIScenarios(t, []string{root.CommandName, "create"}, scenarios)
@@ -334,7 +359,38 @@ func TestBackendUpdate(t *testing.T) {
334359
GetBackendFn: getBackendOK,
335360
UpdateBackendFn: updateBackendOK,
336361
},
337-
WantError: "'tcp-ka-enable' flag must be one of the following [true, false]",
362+
WantError: "'tcp-ka-enabled' flag must be one of the following [true, false]",
363+
},
364+
// The following tests verify parsing of the --prefer-ipv6 flag.
365+
{
366+
Args: "--service-id 123 --version 1 --name www.test.com --prefer-ipv6=true --autoclone",
367+
API: mock.API{
368+
ListVersionsFn: testutil.ListVersions,
369+
CloneVersionFn: testutil.CloneVersionResult(4),
370+
GetBackendFn: getBackendOK,
371+
UpdateBackendFn: updateBackendOK,
372+
},
373+
WantOutput: "Updated backend (service 123 version 4)",
374+
},
375+
{
376+
Args: "--service-id 123 --version 1 --name www.test.com --prefer-ipv6=false --autoclone",
377+
API: mock.API{
378+
ListVersionsFn: testutil.ListVersions,
379+
CloneVersionFn: testutil.CloneVersionResult(4),
380+
GetBackendFn: getBackendOK,
381+
UpdateBackendFn: updateBackendOK,
382+
},
383+
WantOutput: "Updated backend (service 123 version 4)",
384+
},
385+
{
386+
Args: "--service-id 123 --version 1 --name www.test.com --prefer-ipv6=invalid --autoclone",
387+
API: mock.API{
388+
ListVersionsFn: testutil.ListVersions,
389+
CloneVersionFn: testutil.CloneVersionResult(4),
390+
GetBackendFn: getBackendOK,
391+
UpdateBackendFn: updateBackendOK,
392+
},
393+
WantError: "'prefer-ipv6' flag must be one of the following [true, false]",
338394
},
339395
}
340396
testutil.RunCLIScenarios(t, []string{root.CommandName, "update"}, scenarios)
@@ -602,6 +658,7 @@ var describeBackendOutput = strings.Join([]string{
602658
"Comment: test",
603659
"Address: www.test.com",
604660
"Port: 80",
661+
"Prefer IPv6: false",
605662
"Override host: ",
606663
"Connect timeout: 0",
607664
"Max connections: 0",

pkg/commands/backend/create.go

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ type CreateCommand struct {
3838
noSSLCheckCert argparser.OptionalBool
3939
overrideHost argparser.OptionalString
4040
port argparser.OptionalInt
41+
preferIPv6 argparser.OptionalString
4142
requestCondition argparser.OptionalString
4243
serviceName argparser.OptionalServiceNameID
4344
shield argparser.OptionalString
@@ -94,6 +95,7 @@ func NewCreateCommand(parent argparser.Registerer, g *global.Data) *CreateComman
9495
c.CmdClause.Flag("no-ssl-check-cert", "Skip checking SSL certs").Action(c.noSSLCheckCert.Set).BoolVar(&c.noSSLCheckCert.Value)
9596
c.CmdClause.Flag("override-host", "The hostname to override the Host header").Action(c.overrideHost.Set).StringVar(&c.overrideHost.Value)
9697
c.CmdClause.Flag("port", "Port number of the address").Action(c.port.Set).IntVar(&c.port.Value)
98+
c.CmdClause.Flag("prefer-ipv6", "Prefer IPv6 connections [true, false]").Action(c.preferIPv6.Set).StringVar(&c.preferIPv6.Value)
9799
c.CmdClause.Flag("request-condition", "Condition, which if met, will select this backend during a request").Action(c.requestCondition.Set).StringVar(&c.requestCondition.Value)
98100
c.RegisterFlag(argparser.StringFlagOpts{
99101
Name: argparser.FlagServiceIDName,
@@ -190,6 +192,22 @@ func (c *CreateCommand) Exec(_ io.Reader, out io.Writer) error {
190192
if c.overrideHost.WasSet {
191193
input.OverrideHost = &c.overrideHost.Value
192194
}
195+
if c.preferIPv6.WasSet {
196+
var preferIPv6 bool
197+
198+
switch c.preferIPv6.Value {
199+
case "true":
200+
preferIPv6 = true
201+
case "false":
202+
preferIPv6 = false
203+
default:
204+
err := errors.New("'prefer-ipv6' flag must be one of the following [true, false]")
205+
c.Globals.ErrLog.Add(err)
206+
return err
207+
}
208+
209+
input.PreferIPv6 = fastly.ToPointer(fastly.Compatibool(preferIPv6))
210+
}
193211
if c.requestCondition.WasSet {
194212
input.RequestCondition = &c.requestCondition.Value
195213
}
@@ -227,7 +245,7 @@ func (c *CreateCommand) Exec(_ io.Reader, out io.Writer) error {
227245
case "false":
228246
tcpKaEnable = false
229247
default:
230-
err := errors.New("'tcp-ka-enable' flag must be one of the following [true, false]")
248+
err := errors.New("'tcp-ka-enabled' flag must be one of the following [true, false]")
231249
c.Globals.ErrLog.Add(err)
232250
return err
233251
}

pkg/commands/backend/describe.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ func (c *DescribeCommand) print(out io.Writer, b *fastly.Backend) error {
107107
fmt.Fprintf(out, "Comment: %v\n", fastly.ToValue(b.Comment))
108108
fmt.Fprintf(out, "Address: %v\n", fastly.ToValue(b.Address))
109109
fmt.Fprintf(out, "Port: %v\n", fastly.ToValue(b.Port))
110+
fmt.Fprintf(out, "Prefer IPv6: %v\n", fastly.ToValue(b.PreferIPv6))
110111
fmt.Fprintf(out, "Override host: %v\n", fastly.ToValue(b.OverrideHost))
111112
fmt.Fprintf(out, "Connect timeout: %v\n", fastly.ToValue(b.ConnectTimeout))
112113
fmt.Fprintf(out, "Max connections: %v\n", fastly.ToValue(b.MaxConn))

pkg/commands/backend/update.go

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ type UpdateCommand struct {
3737
NoSSLCheckCert argparser.OptionalBool
3838
OverrideHost argparser.OptionalString
3939
Port argparser.OptionalInt
40+
preferIPv6 argparser.OptionalString
4041
RequestCondition argparser.OptionalString
4142
SSLCACert argparser.OptionalString
4243
SSLCertHostname argparser.OptionalString
@@ -92,6 +93,7 @@ func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *UpdateComman
9293
c.CmdClause.Flag("no-ssl-check-cert", "Skip checking SSL certs").Action(c.NoSSLCheckCert.Set).BoolVar(&c.NoSSLCheckCert.Value)
9394
c.CmdClause.Flag("override-host", "The hostname to override the Host header").Action(c.OverrideHost.Set).StringVar(&c.OverrideHost.Value)
9495
c.CmdClause.Flag("port", "Port number of the address").Action(c.Port.Set).IntVar(&c.Port.Value)
96+
c.CmdClause.Flag("prefer-ipv6", "Prefer IPv6 connections").Action(c.preferIPv6.Set).StringVar(&c.preferIPv6.Value)
9597
c.CmdClause.Flag("request-condition", "condition, which if met, will select this backend during a request").Action(c.RequestCondition.Set).StringVar(&c.RequestCondition.Value)
9698
c.RegisterFlag(argparser.StringFlagOpts{
9799
Name: argparser.FlagServiceIDName,
@@ -170,6 +172,23 @@ func (c *UpdateCommand) Exec(_ io.Reader, out io.Writer) error {
170172
input.OverrideHost = &c.OverrideHost.Value
171173
}
172174

175+
if c.preferIPv6.WasSet {
176+
var preferIPv6 bool
177+
178+
switch c.preferIPv6.Value {
179+
case "true":
180+
preferIPv6 = true
181+
case "false":
182+
preferIPv6 = false
183+
default:
184+
err := errors.New("'prefer-ipv6' flag must be one of the following [true, false]")
185+
c.Globals.ErrLog.Add(err)
186+
return err
187+
}
188+
189+
input.PreferIPv6 = fastly.ToPointer(fastly.Compatibool(preferIPv6))
190+
}
191+
173192
if c.ConnectTimeout.WasSet {
174193
input.ConnectTimeout = &c.ConnectTimeout.Value
175194
}
@@ -260,7 +279,7 @@ func (c *UpdateCommand) Exec(_ io.Reader, out io.Writer) error {
260279
case "false":
261280
tcpKaEnable = false
262281
default:
263-
err := errors.New("'tcp-ka-enable' flag must be one of the following [true, false]")
282+
err := errors.New("'tcp-ka-enabled' flag must be one of the following [true, false]")
264283
c.Globals.ErrLog.Add(err)
265284
return err
266285
}

pkg/commands/configstoreentry/errors.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,11 @@ import (
88
)
99

1010
const (
11-
maxKeyLen = 256
12-
maxValueLen = 8000
11+
maxKeyLen = 256
12+
// maxValueLen is the maximum length of Config Store entry's value. It's set to 64k,
13+
// even though customers may have a smaller limit. The API will reject requests if the
14+
// value is larger than the customer's limit.
15+
maxValueLen = 2 << 15
1316
)
1417

1518
var errNoSTDINData = fsterr.RemediationError{

0 commit comments

Comments
 (0)