Skip to content

Commit b7a168e

Browse files
oliwermjuraga
authored andcommitted
MINOR: crt-store: add support for acme and domains attributes
1 parent 8d34f9b commit b7a168e

12 files changed

Lines changed: 75 additions & 2 deletions

File tree

config-parser/parsers/crt-store-load.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,12 @@ func (p *LoadCert) parse(line string, parts []string, comment string) (*types.Lo
4848
switch element {
4949
case "crt":
5050
CheckParsePair(parts, &i, &load.Certificate)
51+
case "acme":
52+
CheckParsePair(parts, &i, &load.Acme)
5153
case "alias":
5254
CheckParsePair(parts, &i, &load.Alias)
55+
case "domains":
56+
CheckParsePair(parts, &i, &load.Domains)
5357
case "key":
5458
CheckParsePair(parts, &i, &load.Key)
5559
case "ocsp":
@@ -60,6 +64,9 @@ func (p *LoadCert) parse(line string, parts []string, comment string) (*types.Lo
6064
CheckParsePair(parts, &i, &load.Sctl)
6165
case "ocsp-update":
6266
i++
67+
if i >= len(parts) {
68+
return nil, p.parseError(line)
69+
}
6370
load.OcspUpdate = new(bool)
6471
if parts[i] == "on" {
6572
*load.OcspUpdate = true
@@ -90,7 +97,9 @@ func (p *LoadCert) Result() ([]common.ReturnResultLine, error) {
9097
sb.Reset()
9198
sb.WriteString("load")
9299
CheckWritePair(sb, "crt", load.Certificate)
100+
CheckWritePair(sb, "acme", load.Acme)
93101
CheckWritePair(sb, "alias", load.Alias)
102+
CheckWritePair(sb, "domains", load.Domains)
94103
CheckWritePair(sb, "key", load.Key)
95104
CheckWritePair(sb, "ocsp", load.Ocsp)
96105
CheckWritePair(sb, "issuer", load.Issuer)

config-parser/tests/configs/haproxy_generated.cfg.go

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config-parser/tests/integration/crt-store_data_test.go

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config-parser/tests/load_generated_test.go

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config-parser/types/types.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1662,11 +1662,14 @@ type HTTPFailCodes struct {
16621662
//test:ok:load crt foo.pem alias foo.com key foo.priv.key ocsp foo.ocsp.der issuer foo.issuer.pem sctl foo.sctl
16631663
//test:ok:load crt foo.pem alias foo.com key foo.priv.key ocsp foo.ocsp.der issuer foo.issuer.pem sctl foo.sctl ocsp-update on
16641664
//test:ok:load crt foo.pem alias foo.com key foo.priv.key ocsp foo.ocsp.der issuer foo.issuer.pem sctl foo.sctl ocsp-update off
1665+
//test:ok:load crt foo.pem acme LE domains example.com,example.org
16651666
//test:fail:load alias foo.com key foo.priv.key
16661667
//test:fail:load crt foo.pem alias foo.com key foo.priv.key ocsp foo.ocsp.der issuer foo.issuer.pem ocsp-update lol
16671668
type LoadCert struct {
16681669
Certificate string
1670+
Acme string
16691671
Alias string
1672+
Domains string
16701673
Key string
16711674
Ocsp string
16721675
Issuer string

configuration/crt_load.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
package configuration
1717

1818
import (
19+
"strings"
20+
1921
strfmt "github.com/go-openapi/strfmt"
2022
parser "github.com/haproxytech/client-native/v6/config-parser"
2123
parser_errors "github.com/haproxytech/client-native/v6/config-parser/errors"
@@ -152,8 +154,10 @@ func (c *client) EditCrtLoad(certificate, crtStore string, data *models.CrtLoad,
152154

153155
func SerializeCrtLoad(load *models.CrtLoad) *types.LoadCert {
154156
t := &types.LoadCert{
157+
Acme: load.Acme,
155158
Alias: load.Alias,
156159
Certificate: load.Certificate,
160+
Domains: strings.Join(load.Domains, ","),
157161
Key: load.Key,
158162
Issuer: load.Issuer,
159163
Ocsp: load.Ocsp,

configuration/crt_store.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package configuration
1818
import (
1919
"errors"
2020
"fmt"
21+
"strings"
2122

2223
strfmt "github.com/go-openapi/strfmt"
2324
parser "github.com/haproxytech/client-native/v6/config-parser"
@@ -197,9 +198,15 @@ func ParseCrtStore(p parser.Parser, name string) (*models.CrtStore, error) {
197198
}
198199
store.Loads = make(models.CrtLoads, len(tloads))
199200
for i, l := range tloads {
201+
domains := strings.Split(l.Domains, ",")
202+
if len(domains) == 1 && domains[0] == "" {
203+
domains = nil
204+
}
200205
mload := &models.CrtLoad{
206+
Acme: l.Acme,
201207
Alias: l.Alias,
202208
Certificate: l.Certificate,
209+
Domains: domains,
203210
Issuer: l.Issuer,
204211
Key: l.Key,
205212
Ocsp: l.Ocsp,

models/crt_load.go

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

models/crt_load_compare.go

Lines changed: 16 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

models/crt_load_compare_test.go

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)