Skip to content

Commit 9c53d0f

Browse files
[azeventgrid] Use the common azcore/messaging/CloudEvent model (#21028)
* Using the new CloudEvent from azcore. * Used @jhendrixMSFT's trick to cleanly remove "external" models, which removed even more code. * Activated the live test part of the pipeline.
1 parent dc418a6 commit 9c53d0f

File tree

15 files changed

+195
-401
lines changed

15 files changed

+195
-401
lines changed

sdk/messaging/azeventgrid/assets.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22
"AssetsRepo": "Azure/azure-sdk-assets",
33
"AssetsRepoPrefixPath": "go",
44
"TagPrefix": "go/messaging/azeventgrid",
5-
"Tag": "go/messaging/azeventgrid_601fd733f2"
5+
"Tag": "go/messaging/azeventgrid_b8c3771d17"
66
}

sdk/messaging/azeventgrid/autorest.md

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,6 @@ directive:
2525
- from: client.go
2626
where: $
2727
transform: return $.replace(/PublishCloudEvents\(/g, "internalPublishCloudEvents(");
28-
# make sure the casing of the properties is what compliant.
29-
# - from: swagger-document
30-
# where: $.definitions.CloudEvent.properties.data
31-
# transform: >
32-
# $["type"] = "array"
33-
# - from: swagger-document
34-
# where: $.definitions.CloudEvent.properties.data
35-
# transform: >
36-
# $["items"] = {"type": "byte"}
3728
- from: swagger-document
3829
where: $.definitions.CloudEvent.properties.specversion
3930
transform: $["x-ms-client-name"] = "SpecVersion"
@@ -43,6 +34,19 @@ directive:
4334
- from: swagger-document
4435
where: $.definitions.CloudEvent.properties.dataschema
4536
transform: $["x-ms-client-name"] = "DataSchema"
37+
# mark models as external so they're just omitted
38+
- from: swagger-document
39+
where: $.definitions.CloudEvent
40+
transform: $["x-ms-external"] = true
41+
- from: swagger-document
42+
where: $.definitions.["Azure.Core.Foundations.Error"]
43+
transform: $["x-ms-external"] = true
44+
- from: swagger-document
45+
where: $.definitions.["Azure.Core.Foundations.ErrorResponse"]
46+
transform: $["x-ms-external"] = true
47+
- from: swagger-document
48+
where: $.definitions.["Azure.Core.Foundations.InnerError"]
49+
transform: $["x-ms-external"] = true
4650
# make the endpoint a parameter of the client constructor
4751
- from: swagger-document
4852
where: $["x-ms-parameterized-host"]
@@ -54,11 +58,11 @@ directive:
5458
- response_types.go
5559
where: $
5660
transform: return $.replace(/Client(\w+)((?:Options|Response))/g, "$1$2");
61+
# replace references to the "generated" CloudEvent to the actual version in azcore/messaging
5762
- from:
5863
- client.go
5964
- models.go
60-
- models_serde.go
6165
- response_types.go
6266
where: $
63-
transform: return $.replace(/AzureCoreFoundations/g, "");
67+
transform: return $.replace(/\*CloudEvent/g, "messaging.CloudEvent");
6468
```

sdk/messaging/azeventgrid/build.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@
44
// +build go1.18
55

66
//go:generate autorest ./autorest.md
7-
//go:generate gofmt -w .
7+
//go:generate goimports -w .
88

99
package azeventgrid

sdk/messaging/azeventgrid/ci.yml

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,29 @@
22
trigger:
33
branches:
44
include:
5-
- main
6-
- feature/*
7-
- hotfix/*
8-
- release/*
5+
- main
6+
- feature/*
7+
- hotfix/*
8+
- release/*
99
paths:
1010
include:
11-
- sdk/messaging/azeventgrid
12-
- eng/
11+
- sdk/messaging/azeventgrid
12+
- eng/
1313

1414
pr:
1515
branches:
1616
include:
17-
- main
18-
- feature/*
19-
- hotfix/*
20-
- release/*
17+
- main
18+
- feature/*
19+
- hotfix/*
20+
- release/*
2121
paths:
2222
include:
23-
- sdk/messaging/azeventgrid
24-
23+
- sdk/messaging/azeventgrid
2524

2625
stages:
27-
- template: /eng/pipelines/templates/jobs/archetype-sdk-client.yml
28-
parameters:
29-
ServiceDirectory: 'messaging/azeventgrid'
26+
- template: /eng/pipelines/templates/jobs/archetype-sdk-client.yml
27+
parameters:
28+
ServiceDirectory: "messaging/azeventgrid"
29+
RunLiveTests: true
30+
Location: westus2

sdk/messaging/azeventgrid/client.go

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

sdk/messaging/azeventgrid/client_custom.go

Lines changed: 2 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,9 @@ import (
1313
"net/http"
1414

1515
"github.com/Azure/azure-sdk-for-go/sdk/azcore"
16+
"github.com/Azure/azure-sdk-for-go/sdk/azcore/messaging"
1617
"github.com/Azure/azure-sdk-for-go/sdk/azcore/policy"
1718
"github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime"
18-
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
19-
"github.com/Azure/azure-sdk-for-go/sdk/internal/uuid"
2019
)
2120

2221
// ClientOptions contains optional settings for [Client]
@@ -59,27 +58,11 @@ func NewClientWithSharedKeyCredential(endpoint string, key string, options *Clie
5958
// - topicName - Topic Name.
6059
// - events - Array of Cloud Events being published.
6160
// - options - ClientPublishCloudEventsOptions contains the optional parameters for the Client.PublishCloudEvents method.
62-
func (client *Client) PublishCloudEvents(ctx context.Context, topicName string, events []*CloudEvent, options *PublishCloudEventsOptions) (PublishCloudEventsResponse, error) {
61+
func (client *Client) PublishCloudEvents(ctx context.Context, topicName string, events []messaging.CloudEvent, options *PublishCloudEventsOptions) (PublishCloudEventsResponse, error) {
6362
ctx = runtime.WithHTTPHeader(ctx, http.Header{
6463
"Content-type": []string{"application/cloudevents-batch+json; charset=utf-8"},
6564
})
6665

67-
for _, evt := range events {
68-
if evt.ID == nil {
69-
id, err := uuid.New()
70-
71-
if err != nil {
72-
return PublishCloudEventsResponse{}, err
73-
}
74-
75-
evt.ID = to.Ptr(id.String())
76-
}
77-
78-
if evt.SpecVersion == nil || *evt.SpecVersion == "" {
79-
evt.SpecVersion = &defaultSpecVersion
80-
}
81-
}
82-
8366
return client.internalPublishCloudEvents(ctx, topicName, events, options)
8467
}
8568

@@ -92,5 +75,3 @@ func (p *skpolicy) Do(req *policy.Request) (*http.Response, error) {
9275
req.Raw().Header.Add("Authorization", "SharedAccessKey "+p.Key)
9376
return req.Next()
9477
}
95-
96-
var defaultSpecVersion = "1.0"

0 commit comments

Comments
 (0)