@@ -85,69 +85,8 @@ func runCloudeventsClientPubSubTest(getSourceOptionsFn GetSourceOptionsFn) func(
8585 agentOptions = util .NewGRPCAgentOptions (certPool , grpcBrokerHost , tokenFile )
8686 case constants .ConfigTypePubSub :
8787 agentOptions = util .NewPubSubAgentOptions (pubsubServer .Addr , pubsubProjectID , clusterName )
88- // prepare topics and subscriptions
89- pubsubConn , err := grpc .NewClient (pubsubServer .Addr , grpc .WithTransportCredentials (insecure .NewCredentials ()))
90- gomega .Expect (err ).ToNot (gomega .HaveOccurred ())
91- defer pubsubConn .Close ()
92-
93- pubsubClient , err := pubsubv2 .NewClient (ctx , pubsubProjectID , option .WithGRPCConn (pubsubConn ))
94- gomega .Expect (err ).ToNot (gomega .HaveOccurred ())
95- defer pubsubClient .Close ()
96-
97- sourceEventsTopic := fmt .Sprintf ("projects/%s/topics/sourceevents" , pubsubProjectID )
98- if _ , err = pubsubClient .TopicAdminClient .GetTopic (ctx , & pubsubpb.GetTopicRequest {Topic : sourceEventsTopic }); err != nil {
99- _ , err = pubsubClient .TopicAdminClient .CreateTopic (ctx , & pubsubpb.Topic {Name : sourceEventsTopic })
100- gomega .Expect (err ).ToNot (gomega .HaveOccurred ())
101- }
102- sourceEventsSubscription := fmt .Sprintf ("projects/%s/subscriptions/sourceevents-%s" , pubsubProjectID , clusterName )
103- if _ , err = pubsubClient .SubscriptionAdminClient .GetSubscription (ctx , & pubsubpb.GetSubscriptionRequest {Subscription : sourceEventsSubscription }); err != nil {
104- _ , err = pubsubClient .SubscriptionAdminClient .CreateSubscription (ctx , & pubsubpb.Subscription {
105- Name : sourceEventsSubscription ,
106- Topic : sourceEventsTopic ,
107- Filter : fmt .Sprintf ("attributes.\" ce-clustername\" =\" %s\" " , clusterName ),
108- })
109- gomega .Expect (err ).ToNot (gomega .HaveOccurred ())
110- }
111- sourceBroadcastTopic := fmt .Sprintf ("projects/%s/topics/sourcebroadcast" , pubsubProjectID )
112- if _ , err = pubsubClient .TopicAdminClient .GetTopic (ctx , & pubsubpb.GetTopicRequest {Topic : sourceBroadcastTopic }); err != nil {
113- _ , err = pubsubClient .TopicAdminClient .CreateTopic (ctx , & pubsubpb.Topic {Name : sourceBroadcastTopic })
114- gomega .Expect (err ).ToNot (gomega .HaveOccurred ())
115- }
116- sourceBroadcastSubscription := fmt .Sprintf ("projects/%s/subscriptions/sourcebroadcast-%s" , pubsubProjectID , clusterName )
117- if _ , err = pubsubClient .SubscriptionAdminClient .GetSubscription (ctx , & pubsubpb.GetSubscriptionRequest {Subscription : sourceBroadcastSubscription }); err != nil {
118- _ , err = pubsubClient .SubscriptionAdminClient .CreateSubscription (ctx , & pubsubpb.Subscription {
119- Name : sourceBroadcastSubscription ,
120- Topic : sourceBroadcastTopic ,
121- })
122- gomega .Expect (err ).ToNot (gomega .HaveOccurred ())
123- }
124- agentEventsTopic := fmt .Sprintf ("projects/%s/topics/agentevents" , pubsubProjectID )
125- if _ , err = pubsubClient .TopicAdminClient .GetTopic (ctx , & pubsubpb.GetTopicRequest {Topic : agentEventsTopic }); err != nil {
126- _ , err = pubsubClient .TopicAdminClient .CreateTopic (ctx , & pubsubpb.Topic {Name : agentEventsTopic })
127- gomega .Expect (err ).ToNot (gomega .HaveOccurred ())
128- }
129- agentEventsSubscription := fmt .Sprintf ("projects/%s/subscriptions/agentevents-%s" , pubsubProjectID , sourceID )
130- if _ , err = pubsubClient .SubscriptionAdminClient .GetSubscription (ctx , & pubsubpb.GetSubscriptionRequest {Subscription : agentEventsSubscription }); err != nil {
131- _ , err = pubsubClient .SubscriptionAdminClient .CreateSubscription (ctx , & pubsubpb.Subscription {
132- Name : agentEventsSubscription ,
133- Topic : agentEventsTopic ,
134- Filter : fmt .Sprintf ("attributes.\" ce-originalsource\" =\" %s\" " , sourceID ),
135- })
136- gomega .Expect (err ).ToNot (gomega .HaveOccurred ())
137- }
138- agentBroadcastTopic := fmt .Sprintf ("projects/%s/topics/agentbroadcast" , pubsubProjectID )
139- if _ , err = pubsubClient .TopicAdminClient .GetTopic (ctx , & pubsubpb.GetTopicRequest {Topic : agentBroadcastTopic }); err != nil {
140- _ , err = pubsubClient .TopicAdminClient .CreateTopic (ctx , & pubsubpb.Topic {Name : agentBroadcastTopic })
141- gomega .Expect (err ).ToNot (gomega .HaveOccurred ())
142- }
143- agentBroadcastSubscription := fmt .Sprintf ("projects/%s/subscriptions/agentbroadcast-%s" , pubsubProjectID , sourceID )
144- if _ , err = pubsubClient .SubscriptionAdminClient .GetSubscription (ctx , & pubsubpb.GetSubscriptionRequest {Subscription : agentBroadcastSubscription }); err != nil {
145- _ , err = pubsubClient .SubscriptionAdminClient .CreateSubscription (ctx , & pubsubpb.Subscription {
146- Name : agentBroadcastSubscription ,
147- Topic : agentBroadcastTopic ,
148- })
149- gomega .Expect (err ).ToNot (gomega .HaveOccurred ())
150- }
88+ // setup topics and subscriptions
89+ gomega .Expect (setupTopicsAndSubscriptions (ctx , clusterName , sourceID )).ToNot (gomega .HaveOccurred ())
15190 }
15291
15392 sourceCloudEventsClient , err = source .StartResourceSourceClient (
@@ -316,3 +255,83 @@ func crudResource(
316255 return nil
317256 }, 10 * time .Second , 1 * time .Second ).Should (gomega .Succeed ())
318257}
258+
259+ func setupTopicsAndSubscriptions (ctx context.Context , clusterName , sourceID string ) error {
260+ // prepare topics and subscriptions
261+ pubsubConn , err := grpc .NewClient (pubsubServer .Addr , grpc .WithTransportCredentials (insecure .NewCredentials ()))
262+ if err != nil {
263+ return err
264+ }
265+ defer pubsubConn .Close ()
266+
267+ pubsubClient , err := pubsubv2 .NewClient (ctx , pubsubProjectID , option .WithGRPCConn (pubsubConn ))
268+ if err != nil {
269+ return err
270+ }
271+ defer pubsubClient .Close ()
272+
273+ sourceEventsTopic := fmt .Sprintf ("projects/%s/topics/sourceevents" , pubsubProjectID )
274+ if _ , err = pubsubClient .TopicAdminClient .GetTopic (ctx , & pubsubpb.GetTopicRequest {Topic : sourceEventsTopic }); err != nil {
275+ if _ , err = pubsubClient .TopicAdminClient .CreateTopic (ctx , & pubsubpb.Topic {Name : sourceEventsTopic }); err != nil {
276+ return err
277+ }
278+ }
279+ sourceEventsSubscription := fmt .Sprintf ("projects/%s/subscriptions/sourceevents-%s" , pubsubProjectID , clusterName )
280+ if _ , err = pubsubClient .SubscriptionAdminClient .GetSubscription (ctx , & pubsubpb.GetSubscriptionRequest {Subscription : sourceEventsSubscription }); err != nil {
281+ if _ , err = pubsubClient .SubscriptionAdminClient .CreateSubscription (ctx , & pubsubpb.Subscription {
282+ Name : sourceEventsSubscription ,
283+ Topic : sourceEventsTopic ,
284+ Filter : fmt .Sprintf ("attributes.\" ce-clustername\" =\" %s\" " , clusterName ),
285+ }); err != nil {
286+ return err
287+ }
288+ }
289+ sourceBroadcastTopic := fmt .Sprintf ("projects/%s/topics/sourcebroadcast" , pubsubProjectID )
290+ if _ , err = pubsubClient .TopicAdminClient .GetTopic (ctx , & pubsubpb.GetTopicRequest {Topic : sourceBroadcastTopic }); err != nil {
291+ if _ , err = pubsubClient .TopicAdminClient .CreateTopic (ctx , & pubsubpb.Topic {Name : sourceBroadcastTopic }); err != nil {
292+ return err
293+ }
294+ }
295+ sourceBroadcastSubscription := fmt .Sprintf ("projects/%s/subscriptions/sourcebroadcast-%s" , pubsubProjectID , clusterName )
296+ if _ , err = pubsubClient .SubscriptionAdminClient .GetSubscription (ctx , & pubsubpb.GetSubscriptionRequest {Subscription : sourceBroadcastSubscription }); err != nil {
297+ if _ , err = pubsubClient .SubscriptionAdminClient .CreateSubscription (ctx , & pubsubpb.Subscription {
298+ Name : sourceBroadcastSubscription ,
299+ Topic : sourceBroadcastTopic ,
300+ }); err != nil {
301+ return err
302+ }
303+ }
304+ agentEventsTopic := fmt .Sprintf ("projects/%s/topics/agentevents" , pubsubProjectID )
305+ if _ , err = pubsubClient .TopicAdminClient .GetTopic (ctx , & pubsubpb.GetTopicRequest {Topic : agentEventsTopic }); err != nil {
306+ if _ , err = pubsubClient .TopicAdminClient .CreateTopic (ctx , & pubsubpb.Topic {Name : agentEventsTopic }); err != nil {
307+ return err
308+ }
309+ }
310+ agentEventsSubscription := fmt .Sprintf ("projects/%s/subscriptions/agentevents-%s" , pubsubProjectID , sourceID )
311+ if _ , err = pubsubClient .SubscriptionAdminClient .GetSubscription (ctx , & pubsubpb.GetSubscriptionRequest {Subscription : agentEventsSubscription }); err != nil {
312+ if _ , err = pubsubClient .SubscriptionAdminClient .CreateSubscription (ctx , & pubsubpb.Subscription {
313+ Name : agentEventsSubscription ,
314+ Topic : agentEventsTopic ,
315+ Filter : fmt .Sprintf ("attributes.\" ce-originalsource\" =\" %s\" " , sourceID ),
316+ }); err != nil {
317+ return err
318+ }
319+ }
320+ agentBroadcastTopic := fmt .Sprintf ("projects/%s/topics/agentbroadcast" , pubsubProjectID )
321+ if _ , err = pubsubClient .TopicAdminClient .GetTopic (ctx , & pubsubpb.GetTopicRequest {Topic : agentBroadcastTopic }); err != nil {
322+ if _ , err = pubsubClient .TopicAdminClient .CreateTopic (ctx , & pubsubpb.Topic {Name : agentBroadcastTopic }); err != nil {
323+ return err
324+ }
325+ }
326+ agentBroadcastSubscription := fmt .Sprintf ("projects/%s/subscriptions/agentbroadcast-%s" , pubsubProjectID , sourceID )
327+ if _ , err = pubsubClient .SubscriptionAdminClient .GetSubscription (ctx , & pubsubpb.GetSubscriptionRequest {Subscription : agentBroadcastSubscription }); err != nil {
328+ if _ , err = pubsubClient .SubscriptionAdminClient .CreateSubscription (ctx , & pubsubpb.Subscription {
329+ Name : agentBroadcastSubscription ,
330+ Topic : agentBroadcastTopic ,
331+ }); err != nil {
332+ return err
333+ }
334+ }
335+
336+ return nil
337+ }
0 commit comments