|
7 | 7 | "context" |
8 | 8 | "errors" |
9 | 9 | "fmt" |
| 10 | + "strconv" |
10 | 11 | "time" |
11 | 12 |
|
12 | 13 | "cloud.google.com/go/pubsub" |
@@ -314,6 +315,9 @@ func (g *mqlGcpProjectPubsubServiceSubscription) config() (*mqlGcpProjectPubsubS |
314 | 315 | "projectId": llx.StringData(projectId), |
315 | 316 | "name": llx.StringData(cfg.Topic.ID()), |
316 | 317 | }) |
| 318 | + if err != nil { |
| 319 | + return nil, err |
| 320 | + } |
317 | 321 |
|
318 | 322 | pushConfig, err := CreateResource(g.MqlRuntime, "gcp.project.pubsubService.subscription.config.pushconfig", map[string]*llx.RawData{ |
319 | 323 | "configId": llx.StringData(pubsubConfigId(projectId, s.ID())), |
@@ -438,13 +442,14 @@ func (g *mqlGcpProjectPubsubServiceTopic) iamPolicy() ([]any, error) { |
438 | 442 | return nil, err |
439 | 443 | } |
440 | 444 |
|
441 | | - res := []any{} |
442 | | - for i, role := range policy.Roles() { |
443 | | - members := policy.Members(role) |
| 445 | + bindings := policy.InternalProto.Bindings |
| 446 | + res := make([]any, 0, len(bindings)) |
| 447 | + topicPath := fmt.Sprintf("projects/%s/topics/%s", projectId, name) |
| 448 | + for i, b := range bindings { |
444 | 449 | mqlBinding, err := CreateResource(g.MqlRuntime, "gcp.resourcemanager.binding", map[string]*llx.RawData{ |
445 | | - "id": llx.StringData(fmt.Sprintf("projects/%s/topics/%s-%d", projectId, name, i)), |
446 | | - "role": llx.StringData(string(role)), |
447 | | - "members": llx.ArrayData(convert.SliceAnyToInterface(members), types.String), |
| 450 | + "id": llx.StringData(topicPath + "-" + strconv.Itoa(i)), |
| 451 | + "role": llx.StringData(b.Role), |
| 452 | + "members": llx.ArrayData(convert.SliceAnyToInterface(b.Members), types.String), |
448 | 453 | }) |
449 | 454 | if err != nil { |
450 | 455 | return nil, err |
@@ -485,13 +490,14 @@ func (g *mqlGcpProjectPubsubServiceSubscription) iamPolicy() ([]any, error) { |
485 | 490 | return nil, err |
486 | 491 | } |
487 | 492 |
|
488 | | - res := []any{} |
489 | | - for i, role := range policy.Roles() { |
490 | | - members := policy.Members(role) |
| 493 | + bindings := policy.InternalProto.Bindings |
| 494 | + res := make([]any, 0, len(bindings)) |
| 495 | + subPath := fmt.Sprintf("projects/%s/subscriptions/%s", projectId, name) |
| 496 | + for i, b := range bindings { |
491 | 497 | mqlBinding, err := CreateResource(g.MqlRuntime, "gcp.resourcemanager.binding", map[string]*llx.RawData{ |
492 | | - "id": llx.StringData(fmt.Sprintf("projects/%s/subscriptions/%s-%d", projectId, name, i)), |
493 | | - "role": llx.StringData(string(role)), |
494 | | - "members": llx.ArrayData(convert.SliceAnyToInterface(members), types.String), |
| 498 | + "id": llx.StringData(subPath + "-" + strconv.Itoa(i)), |
| 499 | + "role": llx.StringData(b.Role), |
| 500 | + "members": llx.ArrayData(convert.SliceAnyToInterface(b.Members), types.String), |
495 | 501 | }) |
496 | 502 | if err != nil { |
497 | 503 | return nil, err |
|
0 commit comments