From 26562fa054beae8fe05a0ca60bb783851c904924 Mon Sep 17 00:00:00 2001 From: Liujian <824010343@qq.com> Date: Fri, 5 Jul 2024 13:34:45 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=AF=81=E4=B9=A6?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=A4=B1=E8=B4=A5=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- go.mod | 2 +- go.sum | 4 +-- module/certificate/impl.go | 60 ++++++++++++++++++++++++++------------ 3 files changed, 45 insertions(+), 21 deletions(-) diff --git a/go.mod b/go.mod index 032ce3b..fa7ebe9 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.21 toolchain go1.21.1 require ( - github.com/eolinker/ap-account v1.0.0 + github.com/eolinker/ap-account v1.0.1 github.com/eolinker/eosc v0.17.3 github.com/eolinker/go-common v1.0.0 github.com/gabriel-vasile/mimetype v1.4.4 diff --git a/go.sum b/go.sum index 24c9ddb..c0211ce 100644 --- a/go.sum +++ b/go.sum @@ -27,8 +27,8 @@ github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/r github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/eolinker/ap-account v1.0.0 h1:MSQn+c2rz/IcRSfr7FzmE2LVRTiWg091eSpFG3vbWdY= -github.com/eolinker/ap-account v1.0.0/go.mod h1:DmBBodZRFmQLeppKY63PCnNGL/IGjT6FIOWCpAK0vSg= +github.com/eolinker/ap-account v1.0.1 h1:tXgPhoh37PY+rx1/Jij34fRSAqn+N5YGHjUVgjvdpXs= +github.com/eolinker/ap-account v1.0.1/go.mod h1:DmBBodZRFmQLeppKY63PCnNGL/IGjT6FIOWCpAK0vSg= github.com/eolinker/eosc v0.17.3 h1:sr2yT+v/AsqEdciRaaZZj0zL9pTufR5RvDW6+65hraQ= github.com/eolinker/eosc v0.17.3/go.mod h1:xgq816hpanlMXFtZw7Ztdctb1eEk9UPHchY4NfFO6Cw= github.com/eolinker/go-common v1.0.0 h1:gqR0d6juRrJVc6OKpl7DFB5Xml5uGx6q9eCetrPqEq8= diff --git a/module/certificate/impl.go b/module/certificate/impl.go index 2e2295d..9778c02 100644 --- a/module/certificate/impl.go +++ b/module/certificate/impl.go @@ -3,8 +3,10 @@ package certificate import ( "context" "encoding/base64" + "errors" "fmt" "github.com/eolinker/eosc/log" + "gorm.io/gorm" "time" "github.com/eolinker/apipark/gateway" @@ -94,10 +96,10 @@ func (m *imlCertificate) save(ctx context.Context, id string, partitionId string return out, nil } -func (m *imlCertificate) dynamicClient(ctx context.Context, clusterId string) (gateway.IDynamicClient, error) { +func (m *imlCertificate) syncGateway(ctx context.Context, clusterId string, releaseInfo *gateway.DynamicRelease, online bool) error { client, err := m.clusterService.GatewayClient(ctx, clusterId) if err != nil { - return nil, err + return err } defer func() { err := client.Close(ctx) @@ -105,8 +107,16 @@ func (m *imlCertificate) dynamicClient(ctx context.Context, clusterId string) (g log.Warn("close apinto client:", err) } }() - return client.Dynamic("certificate") + dynamicClient, err := client.Dynamic("certificate") + if err != nil { + return err + } + if online { + return dynamicClient.Online(ctx, releaseInfo) + } + return dynamicClient.Offline(ctx, releaseInfo) } + func (m *imlCertificate) Create(ctx context.Context, partitionId string, create *certificatedto.FileInput) error { _, err := m.partitionService.Get(ctx, partitionId) if err != nil { @@ -120,11 +130,7 @@ func (m *imlCertificate) Create(ctx context.Context, partitionId string, create id := uuid.New().String() version := time.Now().Format("20060102150405") for _, c := range clusters { - client, err := m.dynamicClient(ctx, c.Uuid) - if err != nil { - return err - } - cfg := &gateway.DynamicRelease{ + err = m.syncGateway(ctx, c.Uuid, &gateway.DynamicRelease{ BasicItem: &gateway.BasicItem{ ID: id, Description: "", @@ -137,8 +143,7 @@ func (m *imlCertificate) Create(ctx context.Context, partitionId string, create "key": create.Key, "pem": create.Cert, }, - } - err = client.Online(ctx, cfg) + }, true) if err != nil { return err } @@ -164,11 +169,7 @@ func (m *imlCertificate) Update(ctx context.Context, id string, edit *certificat return m.transaction.Transaction(ctx, func(ctx context.Context) error { version := time.Now().Format("20060102150405") for _, c := range clusters { - client, err := m.dynamicClient(ctx, c.Uuid) - if err != nil { - return err - } - cfg := &gateway.DynamicRelease{ + err = m.syncGateway(ctx, c.Uuid, &gateway.DynamicRelease{ BasicItem: &gateway.BasicItem{ ID: id, Description: "", @@ -181,8 +182,7 @@ func (m *imlCertificate) Update(ctx context.Context, id string, edit *certificat "key": edit.Key, "pem": edit.Cert, }, - } - err = client.Online(ctx, cfg) + }, true) if err != nil { return err } @@ -216,5 +216,29 @@ func (m *imlCertificate) Detail(ctx context.Context, id string) (*certificatedto } func (m *imlCertificate) Delete(ctx context.Context, id string) error { - return m.service.Delete(ctx, id) + cert, _, err := m.service.Get(ctx, id) + if err != nil { + if errors.Is(err, gorm.ErrRecordNotFound) { + return nil + } + return err + } + clusters, err := m.clusterService.ListByClusters(ctx, cert.Partition) + if err != nil { + return err + } + return m.transaction.Transaction(ctx, func(ctx context.Context) error { + for _, c := range clusters { + err = m.syncGateway(ctx, c.Uuid, &gateway.DynamicRelease{ + BasicItem: &gateway.BasicItem{ + ID: id, + Description: "", + }, + }, false) + if err != nil { + return err + } + } + return m.service.Delete(ctx, id) + }) } From 26ce84982f009c56339c3f040905baace7b29d4e Mon Sep 17 00:00:00 2001 From: Liujian <824010343@qq.com> Date: Fri, 12 Jul 2024 16:38:18 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9Dockerfile?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- go.mod | 14 +++++++------- go.sum | 26 ++++++++++++-------------- scripts/Dockerfile | 2 +- 3 files changed, 20 insertions(+), 22 deletions(-) diff --git a/go.mod b/go.mod index fa7ebe9..53c8774 100644 --- a/go.mod +++ b/go.mod @@ -2,10 +2,10 @@ module github.com/eolinker/apipark go 1.21 -toolchain go1.21.1 +//toolchain go1.21.1 require ( - github.com/eolinker/ap-account v1.0.1 + github.com/eolinker/ap-account v1.0.2 github.com/eolinker/eosc v0.17.3 github.com/eolinker/go-common v1.0.0 github.com/gabriel-vasile/mimetype v1.4.4 @@ -13,7 +13,7 @@ require ( github.com/google/uuid v1.6.0 github.com/influxdata/influxdb-client-go/v2 v2.12.3 github.com/urfave/cli/v2 v2.27.2 - golang.org/x/crypto v0.23.0 + golang.org/x/crypto v0.24.0 gopkg.in/yaml.v3 v3.0.1 gorm.io/gorm v1.25.5 ) @@ -36,6 +36,7 @@ require ( github.com/go-playground/validator/v10 v10.20.0 // indirect github.com/go-sql-driver/mysql v1.7.0 // indirect github.com/goccy/go-json v0.10.2 // indirect + github.com/google/go-cmp v0.6.0 // indirect github.com/gorilla/websocket v1.4.2 // indirect github.com/influxdata/line-protocol v0.0.0-20200327222509-2487e7298839 // indirect github.com/jinzhu/inflection v1.0.0 // indirect @@ -58,10 +59,9 @@ require ( go.uber.org/multierr v1.6.0 // indirect go.uber.org/zap v1.23.0 // indirect golang.org/x/arch v0.8.0 // indirect - golang.org/x/net v0.25.0 // indirect - golang.org/x/sys v0.20.0 // indirect - golang.org/x/text v0.15.0 // indirect - golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f // indirect + golang.org/x/net v0.26.0 // indirect + golang.org/x/sys v0.22.0 // indirect + golang.org/x/text v0.16.0 // indirect google.golang.org/protobuf v1.34.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gorm.io/driver/mysql v1.5.2 // indirect diff --git a/go.sum b/go.sum index c0211ce..52afb83 100644 --- a/go.sum +++ b/go.sum @@ -27,8 +27,8 @@ github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/r github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/eolinker/ap-account v1.0.1 h1:tXgPhoh37PY+rx1/Jij34fRSAqn+N5YGHjUVgjvdpXs= -github.com/eolinker/ap-account v1.0.1/go.mod h1:DmBBodZRFmQLeppKY63PCnNGL/IGjT6FIOWCpAK0vSg= +github.com/eolinker/ap-account v1.0.2 h1:wSPBrOu0FoL27lAkYVOdIXak6YUVq2nCP6dw+StQDz8= +github.com/eolinker/ap-account v1.0.2/go.mod h1:DmBBodZRFmQLeppKY63PCnNGL/IGjT6FIOWCpAK0vSg= github.com/eolinker/eosc v0.17.3 h1:sr2yT+v/AsqEdciRaaZZj0zL9pTufR5RvDW6+65hraQ= github.com/eolinker/eosc v0.17.3/go.mod h1:xgq816hpanlMXFtZw7Ztdctb1eEk9UPHchY4NfFO6Cw= github.com/eolinker/go-common v1.0.0 h1:gqR0d6juRrJVc6OKpl7DFB5Xml5uGx6q9eCetrPqEq8= @@ -60,8 +60,8 @@ github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9 github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/golangci/lint-1 v0.0.0-20181222135242-d2cdd8c08219/go.mod h1:/X8TswGSh1pIozq4ZwCfxS0WA5JGXguxk94ar/4c87Y= -github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -160,14 +160,14 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= -golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI= -golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= +golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= +golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac= -golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= +golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= +golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -182,22 +182,20 @@ golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y= -golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk= -golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= +golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f h1:GGU+dLjvlC3qDwqYgL6UgRmHXhOOgns0bZu2Ty5mm6U= -golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg= google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/scripts/Dockerfile b/scripts/Dockerfile index 40f799f..cd08cc7 100755 --- a/scripts/Dockerfile +++ b/scripts/Dockerfile @@ -14,5 +14,5 @@ COPY cmd/* /${APP}/ COPY resource/* /${APP}/ WORKDIR /$APP - +ENV ADMIN_PASSWORD=12345678 CMD ./docker_run.sh \ No newline at end of file