Skip to content

Commit ed099a3

Browse files
authored
feat(publisher): update publish state with redis (#183)
Signed-off-by: wuhuizuo <wuhuizuo@126.com> Signed-off-by: wuhuizuo <wuhuizuo@126.com>
1 parent 00c2f08 commit ed099a3

File tree

15 files changed

+127
-74
lines changed

15 files changed

+127
-74
lines changed

publisher/cmd/publisher/main.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ import (
1818
"goa.design/clue/log"
1919
"gopkg.in/yaml.v3"
2020

21-
"github.com/PingCAP-QE/ee-apps/publisher"
22-
tiup "github.com/PingCAP-QE/ee-apps/publisher/gen/tiup"
21+
gentiup "github.com/PingCAP-QE/ee-apps/publisher/gen/tiup"
2322
"github.com/PingCAP-QE/ee-apps/publisher/pkg/config"
23+
"github.com/PingCAP-QE/ee-apps/publisher/pkg/impl/tiup"
2424
)
2525

2626
func main() {
@@ -56,18 +56,18 @@ func main() {
5656
zerolog.SetGlobalLevel(logLevel)
5757

5858
// Initialize the services.
59-
tiupSvc, err := initService(*configFile)
59+
tiupSvc, err := initTiupService(*configFile)
6060
if err != nil {
6161
log.Fatalf(ctx, err, "failed to initialize service")
6262
}
6363

6464
// Wrap the services in endpoints that can be invoked from other services
6565
// potentially running in different processes.
6666
var (
67-
tiupEndpoints *tiup.Endpoints
67+
tiupEndpoints *gentiup.Endpoints
6868
)
6969
{
70-
tiupEndpoints = tiup.NewEndpoints(tiupSvc)
70+
tiupEndpoints = gentiup.NewEndpoints(tiupSvc)
7171
tiupEndpoints.Use(debug.LogPayloads())
7272
tiupEndpoints.Use(log.Endpoint)
7373
}
@@ -128,20 +128,20 @@ func main() {
128128
log.Printf(ctx, "exited")
129129
}
130130

131-
func initService(configFile string) (tiup.Service, error) {
131+
func initTiupService(configFile string) (gentiup.Service, error) {
132132
// Load and parse configuration
133133
var config config.Service
134134
{
135135
configData, err := os.ReadFile(configFile)
136136
if err != nil {
137-
return nil, fmt.Errorf("Error reading config file: %v", err)
137+
return nil, fmt.Errorf("error reading config file: %v", err)
138138
}
139139
if err := yaml.Unmarshal(configData, &config); err != nil {
140-
return nil, fmt.Errorf("Error parsing config file: %v", err)
140+
return nil, fmt.Errorf("error parsing config file: %v", err)
141141
}
142142
}
143143

144-
logger := zerolog.New(os.Stderr).With().Timestamp().Str("service", tiup.ServiceName).Logger()
144+
logger := zerolog.New(os.Stderr).With().Timestamp().Str("service", gentiup.ServiceName).Logger()
145145

146146
// Configure Kafka kafkaWriter
147147
kafkaWriter := kafka.NewWriter(kafka.WriterConfig{
@@ -159,5 +159,5 @@ func initService(configFile string) (tiup.Service, error) {
159159
DB: config.Redis.DB,
160160
})
161161

162-
return publisher.NewTiup(&logger, kafkaWriter, redisClient, config.EventSource), nil
162+
return tiup.NewTiup(&logger, kafkaWriter, redisClient, config.EventSource), nil
163163
}

publisher/cmd/worker/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import (
1717
"gopkg.in/yaml.v3"
1818

1919
"github.com/PingCAP-QE/ee-apps/publisher/pkg/config"
20-
"github.com/PingCAP-QE/ee-apps/publisher/pkg/tiup"
20+
"github.com/PingCAP-QE/ee-apps/publisher/pkg/impl/tiup"
2121
)
2222

2323
func main() {

publisher/design/design.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,9 @@ var _ = Service("tiup", func() {
5656
Attribute("request_id", String, "request track id")
5757
Required("request_id")
5858
})
59-
Result(String, "request state")
59+
Result(String, "request state", func() {
60+
Enum("queued", "processing", "success", "failed")
61+
})
6062
HTTP(func() {
6163
GET("/publish-request/{request_id}")
6264
Response(StatusOK)

publisher/gen/http/cli/publisher/cli.go

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

publisher/gen/http/openapi.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"swagger":"2.0","info":{"title":"Publish API","description":"Publish API","contact":{"name":"WuHui Zuo","email":"wuhui.zuo@pingcap.com","url":"https://github.com/wuhuizuo"},"version":"1.0.0"},"host":"0.0.0.0:80","consumes":["application/json","application/xml","application/gob"],"produces":["application/json","application/xml","application/gob"],"paths":{"/tiup/publish-request":{"post":{"tags":["tiup"],"summary":"request-to-publish tiup","operationId":"tiup#request-to-publish","parameters":[{"name":"Request-To-PublishRequestBody","in":"body","required":true,"schema":{"$ref":"#/definitions/TiupRequestToPublishRequestBody","required":["artifact_url","tiup-mirror"]}}],"responses":{"200":{"description":"OK response.","schema":{"type":"array","items":{"type":"string","example":"Sed illo harum quis voluptatem."}}}},"schemes":["http"]}},"/tiup/publish-request/{request_id}":{"get":{"tags":["tiup"],"summary":"query-publishing-status tiup","operationId":"tiup#query-publishing-status","parameters":[{"name":"request_id","in":"path","description":"request track id","required":true,"type":"string"}],"responses":{"200":{"description":"OK response.","schema":{"type":"string"}}},"schemes":["http"]}}},"definitions":{"TiupRequestToPublishRequestBody":{"title":"TiupRequestToPublishRequestBody","type":"object","properties":{"artifact_url":{"type":"string","description":"The full url of the pushed image, contain the tag part. It will parse the repo from it.","example":"Et ullam."},"request_id":{"type":"string","description":"The request id","example":"Assumenda tempora autem accusantium est."},"tiup-mirror":{"type":"string","description":"Staging is http://tiup.pingcap.net:8988, product is http://tiup.pingcap.net:8987.","default":"http://tiup.pingcap.net:8988","example":"Ab expedita repellendus."},"version":{"type":"string","description":"Force set the version. Default is the artifact version read from `org.opencontainers.image.version` of the manifest config.","example":"Et suscipit et."}},"example":{"artifact_url":"Corrupti ut natus aut ipsam reprehenderit.","request_id":"Rerum tempore voluptas.","tiup-mirror":"Laboriosam optio omnis cupiditate magnam nisi.","version":"Et eum odit eos ratione."},"required":["artifact_url","tiup-mirror"]}}}
1+
{"swagger":"2.0","info":{"title":"Publish API","description":"Publish API","contact":{"name":"WuHui Zuo","email":"wuhui.zuo@pingcap.com","url":"https://github.com/wuhuizuo"},"version":"1.0.0"},"host":"0.0.0.0:80","consumes":["application/json","application/xml","application/gob"],"produces":["application/json","application/xml","application/gob"],"paths":{"/tiup/publish-request":{"post":{"tags":["tiup"],"summary":"request-to-publish tiup","operationId":"tiup#request-to-publish","parameters":[{"name":"Request-To-PublishRequestBody","in":"body","required":true,"schema":{"$ref":"#/definitions/TiupRequestToPublishRequestBody","required":["artifact_url","tiup-mirror"]}}],"responses":{"200":{"description":"OK response.","schema":{"type":"array","items":{"type":"string","example":"Cupiditate suscipit hic quidem voluptates nostrum necessitatibus."}}}},"schemes":["http"]}},"/tiup/publish-request/{request_id}":{"get":{"tags":["tiup"],"summary":"query-publishing-status tiup","operationId":"tiup#query-publishing-status","parameters":[{"name":"request_id","in":"path","description":"request track id","required":true,"type":"string"}],"responses":{"200":{"description":"OK response.","schema":{"type":"string","enum":["queued","processing","success","failed"]}}},"schemes":["http"]}}},"definitions":{"TiupRequestToPublishRequestBody":{"title":"TiupRequestToPublishRequestBody","type":"object","properties":{"artifact_url":{"type":"string","description":"The full url of the pushed image, contain the tag part. It will parse the repo from it.","example":"Optio necessitatibus ipsa incidunt."},"request_id":{"type":"string","description":"The request id","example":"Et ullam."},"tiup-mirror":{"type":"string","description":"Staging is http://tiup.pingcap.net:8988, product is http://tiup.pingcap.net:8987.","default":"http://tiup.pingcap.net:8988","example":"Illo harum quis voluptatem."},"version":{"type":"string","description":"Force set the version. Default is the artifact version read from `org.opencontainers.image.version` of the manifest config.","example":"Expedita et necessitatibus ut molestias."}},"example":{"artifact_url":"Et suscipit et.","request_id":"Corrupti ut natus aut ipsam reprehenderit.","tiup-mirror":"Assumenda tempora autem accusantium est.","version":"Ab expedita repellendus."},"required":["artifact_url","tiup-mirror"]}}}

publisher/gen/http/openapi.yaml

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ paths:
3939
type: array
4040
items:
4141
type: string
42-
example: Sed illo harum quis voluptatem.
42+
example: Cupiditate suscipit hic quidem voluptates nostrum necessitatibus.
4343
schemes:
4444
- http
4545
/tiup/publish-request/{request_id}:
@@ -59,6 +59,11 @@ paths:
5959
description: OK response.
6060
schema:
6161
type: string
62+
enum:
63+
- queued
64+
- processing
65+
- success
66+
- failed
6267
schemes:
6368
- http
6469
definitions:
@@ -69,25 +74,25 @@ definitions:
6974
artifact_url:
7075
type: string
7176
description: The full url of the pushed image, contain the tag part. It will parse the repo from it.
72-
example: Et ullam.
77+
example: Optio necessitatibus ipsa incidunt.
7378
request_id:
7479
type: string
7580
description: The request id
76-
example: Assumenda tempora autem accusantium est.
81+
example: Et ullam.
7782
tiup-mirror:
7883
type: string
7984
description: Staging is http://tiup.pingcap.net:8988, product is http://tiup.pingcap.net:8987.
8085
default: http://tiup.pingcap.net:8988
81-
example: Ab expedita repellendus.
86+
example: Illo harum quis voluptatem.
8287
version:
8388
type: string
8489
description: Force set the version. Default is the artifact version read from `org.opencontainers.image.version` of the manifest config.
85-
example: Et suscipit et.
90+
example: Expedita et necessitatibus ut molestias.
8691
example:
87-
artifact_url: Corrupti ut natus aut ipsam reprehenderit.
88-
request_id: Rerum tempore voluptas.
89-
tiup-mirror: Laboriosam optio omnis cupiditate magnam nisi.
90-
version: Et eum odit eos ratione.
92+
artifact_url: Et suscipit et.
93+
request_id: Corrupti ut natus aut ipsam reprehenderit.
94+
tiup-mirror: Assumenda tempora autem accusantium est.
95+
version: Ab expedita repellendus.
9196
required:
9297
- artifact_url
9398
- tiup-mirror

publisher/gen/http/openapi3.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"openapi":"3.0.3","info":{"title":"Publish API","description":"Publish API","contact":{"name":"WuHui Zuo","url":"https://github.com/wuhuizuo","email":"wuhui.zuo@pingcap.com"},"version":"1.0.0"},"servers":[{"url":"http://0.0.0.0:80"}],"paths":{"/tiup/publish-request":{"post":{"tags":["tiup"],"summary":"request-to-publish tiup","operationId":"tiup#request-to-publish","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestToPublishRequestBody"},"example":{"artifact_url":"A facilis.","request_id":"Sequi placeat blanditiis est iusto quia eum.","tiup-mirror":"Sunt voluptates.","version":"Rerum consectetur deleniti."}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"type":"array","items":{"type":"string","example":"Distinctio voluptates voluptatem accusamus nisi omnis quia."},"description":"request track ids","example":["Voluptates possimus pariatur consequuntur itaque est dignissimos.","Atque amet optio et aliquam ut.","Nulla at error qui dolores et ipsa.","Rem nisi non."]},"example":["Molestiae vitae ut commodi voluptatem consectetur.","Magnam aut et labore."]}}}}}},"/tiup/publish-request/{request_id}":{"get":{"tags":["tiup"],"summary":"query-publishing-status tiup","operationId":"tiup#query-publishing-status","parameters":[{"name":"request_id","in":"path","description":"request track id","required":true,"schema":{"type":"string","description":"request track id","example":"Facere maiores tenetur mollitia consequatur perferendis sint."},"example":"Nisi earum earum pariatur et animi."}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"type":"string","description":"request state","example":"Necessitatibus officia distinctio officia voluptas laudantium iure."},"example":"Aperiam consequatur consequatur."}}}}}}},"components":{"schemas":{"RequestToPublishRequestBody":{"type":"object","properties":{"artifact_url":{"type":"string","description":"The full url of the pushed image, contain the tag part. It will parse the repo from it.","example":"Voluptas ratione hic libero nisi."},"request_id":{"type":"string","description":"The request id","example":"Quibusdam nisi quam."},"tiup-mirror":{"type":"string","description":"Staging is http://tiup.pingcap.net:8988, product is http://tiup.pingcap.net:8987.","default":"http://tiup.pingcap.net:8988","example":"Magni quia adipisci excepturi."},"version":{"type":"string","description":"Force set the version. Default is the artifact version read from `org.opencontainers.image.version` of the manifest config.","example":"Rerum voluptate accusantium optio."}},"example":{"artifact_url":"Atque vero in molestiae odit consequatur.","request_id":"Eos eveniet vero.","tiup-mirror":"Nemo rerum voluptas.","version":"Eum saepe nihil omnis dolorem eveniet."},"required":["artifact_url","tiup-mirror"]}}},"tags":[{"name":"tiup","description":"TiUP Publisher service"}]}
1+
{"openapi":"3.0.3","info":{"title":"Publish API","description":"Publish API","contact":{"name":"WuHui Zuo","url":"https://github.com/wuhuizuo","email":"wuhui.zuo@pingcap.com"},"version":"1.0.0"},"servers":[{"url":"http://0.0.0.0:80"}],"paths":{"/tiup/publish-request":{"post":{"tags":["tiup"],"summary":"request-to-publish tiup","operationId":"tiup#request-to-publish","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestToPublishRequestBody"},"example":{"artifact_url":"Omnis expedita.","request_id":"Est sequi placeat.","tiup-mirror":"Pariatur rerum consectetur deleniti architecto sunt.","version":"Dicta id perferendis rem a."}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"type":"array","items":{"type":"string","example":"Eum saepe nihil omnis dolorem eveniet."},"description":"request track ids","example":["Rerum voluptas dolore.","Eveniet vero voluptas.","Voluptates voluptatem accusamus nisi omnis quia molestias."]},"example":["Pariatur consequuntur itaque est.","Exercitationem atque amet optio."]}}}}}},"/tiup/publish-request/{request_id}":{"get":{"tags":["tiup"],"summary":"query-publishing-status tiup","operationId":"tiup#query-publishing-status","parameters":[{"name":"request_id","in":"path","description":"request track id","required":true,"schema":{"type":"string","description":"request track id","example":"Aliquam ut laborum nulla."},"example":"Error qui dolores et."}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"type":"string","description":"request state","example":"queued","enum":["queued","processing","success","failed"]},"example":"failed"}}}}}}},"components":{"schemas":{"RequestToPublishRequestBody":{"type":"object","properties":{"artifact_url":{"type":"string","description":"The full url of the pushed image, contain the tag part. It will parse the repo from it.","example":"Et eum odit eos ratione."},"request_id":{"type":"string","description":"The request id","example":"Voluptas ratione hic libero nisi."},"tiup-mirror":{"type":"string","description":"Staging is http://tiup.pingcap.net:8988, product is http://tiup.pingcap.net:8987.","default":"http://tiup.pingcap.net:8988","example":"Rerum tempore voluptas."},"version":{"type":"string","description":"Force set the version. Default is the artifact version read from `org.opencontainers.image.version` of the manifest config.","example":"Laboriosam optio omnis cupiditate magnam nisi."}},"example":{"artifact_url":"Rerum voluptate accusantium optio.","request_id":"Atque vero in molestiae odit consequatur.","tiup-mirror":"Quibusdam nisi quam.","version":"Magni quia adipisci excepturi."},"required":["artifact_url","tiup-mirror"]}}},"tags":[{"name":"tiup","description":"TiUP Publisher service"}]}

0 commit comments

Comments
 (0)