Skip to content

Commit d0600ef

Browse files
oliwermjuraga
authored andcommitted
MEDIUM: Add size and certificates info to the storage API
Adapt the storage API handlers to client-native!486+
1 parent 28f17ff commit d0600ef

File tree

6 files changed

+124
-12
lines changed

6 files changed

+124
-12
lines changed

embedded_spec.go

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

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ require (
2222
github.com/go-openapi/validate v0.22.1
2323
github.com/google/renameio v1.0.1
2424
github.com/google/uuid v1.3.0
25-
github.com/haproxytech/client-native/v5 v5.0.1-0.20230627090953-fd33357d89d2
25+
github.com/haproxytech/client-native/v5 v5.0.1-0.20230628135435-6ffddfd714e9
2626
github.com/haproxytech/config-parser/v5 v5.0.1-0.20230621085204-83b68fc565ef
2727
github.com/jessevdk/go-flags v1.5.0
2828
github.com/json-iterator/go v1.1.12

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,8 +129,8 @@ github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+
129129
github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
130130
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
131131
github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
132-
github.com/haproxytech/client-native/v5 v5.0.1-0.20230627090953-fd33357d89d2 h1:n0/HPZoVe6msCQVV4mLFmiHKEFL2EullcRmyZFpA1fA=
133-
github.com/haproxytech/client-native/v5 v5.0.1-0.20230627090953-fd33357d89d2/go.mod h1:vrU+HqWnVSNzwycAlXnQ9mIr4nYycK+yOeIkF61YXew=
132+
github.com/haproxytech/client-native/v5 v5.0.1-0.20230628135435-6ffddfd714e9 h1:6HvKWzhchNObsFOGh/k56Nio1VTt6Zcs2L2MFqdxG6o=
133+
github.com/haproxytech/client-native/v5 v5.0.1-0.20230628135435-6ffddfd714e9/go.mod h1:LLrzv1Y5cdoUpfZZm/kTtu4ULshJwhVTLeKQSbspYZw=
134134
github.com/haproxytech/config-parser/v5 v5.0.1-0.20230621085204-83b68fc565ef h1:IXxc+Mxwj1FMrnvqN/FmP+x5Uc7AaWX6Nwirft/qfcI=
135135
github.com/haproxytech/config-parser/v5 v5.0.1-0.20230621085204-83b68fc565ef/go.mod h1:7JxHGhCD6WRRc+++7QRBMjoUZMYEP+JRQmp/nBGI9zo=
136136
github.com/haproxytech/go-logger v1.1.0 h1:HgGtYaI1ApkvbQdsm7f9AzQQoxTB7w37criTflh7IQE=

handlers/general_storage.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ func (h *StorageCreateStorageGeneralFileHandlerImpl) Handle(params storage.Creat
4949
return storage.NewCreateStorageGeneralFileDefault(int(*e.Code)).WithPayload(e)
5050
}
5151

52-
filename, err := gs.Create(file.Header.Filename, params.FileUpload)
52+
filename, size, err := gs.Create(file.Header.Filename, params.FileUpload)
5353
if err != nil {
5454
status := misc.GetHTTPStatusFromErr(err)
5555
return storage.NewCreateStorageGeneralFileDefault(status).WithPayload(misc.SetError(status, err.Error()))
@@ -59,6 +59,7 @@ func (h *StorageCreateStorageGeneralFileHandlerImpl) Handle(params storage.Creat
5959
Description: "managed general use file",
6060
File: filename,
6161
StorageName: filepath.Base(filename),
62+
Size: size,
6263
}
6364

6465
return storage.NewCreateStorageGeneralFileCreated().WithPayload(me)
@@ -108,7 +109,7 @@ func (h *StorageGetOneStorageGeneralFileHandlerImpl) Handle(params storage.GetOn
108109
return storage.NewGetOneStorageGeneralFileDefault(int(*e.Code)).WithPayload(e)
109110
}
110111

111-
filename, err := gs.Get(params.Name)
112+
filename, _, err := gs.Get(params.Name)
112113
if err != nil {
113114
e := misc.HandleError(err)
114115
return storage.NewGetOneStorageGeneralFileDefault(int(*e.Code)).WithPayload(e)
@@ -144,7 +145,7 @@ func (h *StorageDeleteStorageGeneralFileHandlerImpl) Handle(params storage.Delet
144145

145146
runningConf := strings.NewReader(configuration.Parser().String())
146147

147-
filename, err := gs.Get(params.Name)
148+
filename, _, err := gs.Get(params.Name)
148149
if err != nil {
149150
e := misc.HandleError(err)
150151
return storage.NewDeleteStorageGeneralFileDefault(int(*e.Code)).WithPayload(e)

handlers/map_storage.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ func (h *StorageCreateStorageMapFileHandlerImpl) Handle(params storage.CreateSto
4949
return storage.NewCreateStorageMapFileDefault(int(*e.Code)).WithPayload(e)
5050
}
5151

52-
filename, err := st.Create(file.Header.Filename, params.FileUpload)
52+
filename, size, err := st.Create(file.Header.Filename, params.FileUpload)
5353
if err != nil {
5454
status := misc.GetHTTPStatusFromErr(err)
5555
return storage.NewCreateStorageMapFileDefault(status).WithPayload(misc.SetError(status, err.Error()))
@@ -59,6 +59,7 @@ func (h *StorageCreateStorageMapFileHandlerImpl) Handle(params storage.CreateSto
5959
Description: "managed but not loaded map file (no runtime ID)",
6060
File: filename,
6161
StorageName: filepath.Base(filename),
62+
Size: size,
6263
}
6364
// no reload or force reload since this is just a file upload,
6465
// haproxy configuration has not been changed
@@ -110,7 +111,7 @@ func (h *GetOneStorageMapHandlerImpl) Handle(params storage.GetOneStorageMapPara
110111
return storage.NewGetAllStorageMapFilesDefault(int(*e.Code)).WithPayload(e)
111112
}
112113

113-
filename, err := st.Get(params.Name)
114+
filename, _, err := st.Get(params.Name)
114115
if err != nil {
115116
e := misc.HandleError(err)
116117
return storage.NewGetOneStorageMapDefault(int(*e.Code)).WithPayload(e)
@@ -146,7 +147,7 @@ func (h *StorageDeleteStorageMapHandlerImpl) Handle(params storage.DeleteStorage
146147

147148
runningConf := strings.NewReader(configuration.Parser().String())
148149

149-
filename, err := st.Get(params.Name)
150+
filename, _, err := st.Get(params.Name)
150151
if err != nil {
151152
e := misc.HandleError(err)
152153
return storage.NewDeleteStorageSSLCertificateDefault(int(*e.Code)).WithPayload(e)

handlers/ssl_cert_storage.go

Lines changed: 37 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import (
2323

2424
"github.com/go-openapi/runtime"
2525
"github.com/go-openapi/runtime/middleware"
26+
"github.com/go-openapi/strfmt"
2627
client_native "github.com/haproxytech/client-native/v5"
2728
models "github.com/haproxytech/client-native/v5/models"
2829

@@ -73,18 +74,29 @@ func (h *StorageGetOneStorageSSLCertificateHandlerImpl) Handle(params storage.Ge
7374
return storage.NewGetOneStorageSSLCertificateDefault(int(*e.Code)).WithPayload(e)
7475
}
7576

76-
filename, err := sslStorage.Get(params.Name)
77+
filename, size, err := sslStorage.Get(params.Name)
7778
if err != nil {
7879
e := misc.HandleError(err)
7980
return storage.NewGetOneStorageSSLCertificateDefault(int(*e.Code)).WithPayload(e)
8081
}
8182
if filename == "" {
8283
return storage.NewGetOneStorageSSLCertificateNotFound()
8384
}
85+
info, err := sslStorage.GetCertificatesInfo(params.Name)
86+
if err != nil {
87+
e := misc.HandleError(err)
88+
return storage.NewGetOneStorageSSLCertificateDefault(int(*e.Code)).WithPayload(e)
89+
}
8490
retf := &models.SslCertificate{
8591
File: filename,
8692
Description: "managed SSL file",
8793
StorageName: filepath.Base(filename),
94+
Size: size,
95+
NotAfter: strfmt.Date(info.NotAfter),
96+
NotBefore: strfmt.Date(info.NotBefore),
97+
Issuers: info.Issuers,
98+
Domains: info.DNS,
99+
IPAddresses: info.IPs,
88100
}
89101
return storage.NewGetOneStorageSSLCertificateOK().WithPayload(retf)
90102
}
@@ -109,7 +121,7 @@ func (h *StorageDeleteStorageSSLCertificateHandlerImpl) Handle(params storage.De
109121
return storage.NewDeleteStorageSSLCertificateDefault(int(*e.Code)).WithPayload(e)
110122
}
111123

112-
filename, err := sslStorage.Get(params.Name)
124+
filename, _, err := sslStorage.Get(params.Name)
113125
if err != nil {
114126
e := misc.HandleError(err)
115127
return storage.NewDeleteStorageSSLCertificateDefault(int(*e.Code)).WithPayload(e)
@@ -181,10 +193,21 @@ func (h *StorageReplaceStorageSSLCertificateHandlerImpl) Handle(params storage.R
181193
e := misc.HandleError(err)
182194
return storage.NewReplaceStorageSSLCertificateDefault(int(*e.Code)).WithPayload(e)
183195
}
196+
info, err := sslStorage.GetCertificatesInfo(filename)
197+
if err != nil {
198+
e := misc.HandleError(err)
199+
return storage.NewReplaceStorageSSLCertificateDefault(int(*e.Code)).WithPayload(e)
200+
}
184201
retf := &models.SslCertificate{
185202
File: filename,
186203
Description: "managed SSL file",
187204
StorageName: filepath.Base(filename),
205+
Size: int64(len(params.Data)),
206+
NotAfter: strfmt.Date(info.NotAfter),
207+
NotBefore: strfmt.Date(info.NotBefore),
208+
Issuers: info.Issuers,
209+
Domains: info.DNS,
210+
IPAddresses: info.IPs,
188211
}
189212

190213
skipReload := false
@@ -230,7 +253,12 @@ func (h *StorageCreateStorageSSLCertificateHandlerImpl) Handle(params storage.Cr
230253
if !ok {
231254
return storage.NewCreateStorageSSLCertificateBadRequest()
232255
}
233-
filename, err := sslStorage.Create(file.Header.Filename, params.FileUpload)
256+
filename, size, err := sslStorage.Create(file.Header.Filename, params.FileUpload)
257+
if err != nil {
258+
e := misc.HandleError(err)
259+
return storage.NewCreateStorageSSLCertificateDefault(int(*e.Code)).WithPayload(e)
260+
}
261+
info, err := sslStorage.GetCertificatesInfo(filename)
234262
if err != nil {
235263
e := misc.HandleError(err)
236264
return storage.NewCreateStorageSSLCertificateDefault(int(*e.Code)).WithPayload(e)
@@ -239,6 +267,12 @@ func (h *StorageCreateStorageSSLCertificateHandlerImpl) Handle(params storage.Cr
239267
File: filename,
240268
Description: "managed SSL file",
241269
StorageName: filepath.Base(filename),
270+
Size: size,
271+
NotAfter: strfmt.Date(info.NotAfter),
272+
NotBefore: strfmt.Date(info.NotBefore),
273+
Issuers: info.Issuers,
274+
Domains: info.DNS,
275+
IPAddresses: info.IPs,
242276
}
243277

244278
forceReload := false

0 commit comments

Comments
 (0)